2024_coltrane_giant_steps_2.py

#

SPDX-FileCopyrightText: 2025 Yuki Fujieda SPDX-FileCopyrightText: 2025 AlICe laboratory https://alicelab.be

SPDX-License-Identifier: GPL-3.0-or-later

#

MESH CREATION - 3/10/2024 written under windows 11 - Blender 4.1.0

import bpy
import random
import math
#
def clean():
    bpy.ops.object.select_all(action="SELECT")
    bpy.ops.object.delete()
    bpy.ops.outliner.orphans_purge()


clean()

bpy.context.scene.cursor.location = (0, 0, 0)
#

B

#

1

List1b1 = [(1, 21, 2)]
List1b2 = [(1, 21, 2)]
List1b3 = [(1, 21, 0.5), (1.5, 18, 0.5), (2, 14, 1)]
List1b4 = [(1, 29, 2)]
List1b5 = [(1, 26, 0.5), (1.5, 16, 0.5), (2, 18, 0.5), (2.5, 21, 0.5)]
List1b6 = [(1.5, 9, 0.5), (2, 14, 0.5), (2.5, 18, 0.5)]
List1b7 = [(1, 29, 3.5)]
List1b8 = [(1, 23, 0.5), (1.5, 21, 0.5), (2, 18, 0.5), (2.5, 14, 0.5)]
List1b9 = [(1, 14, 0.5), (1.5, 16, 0.5), (2, 18, 0.5), (2.5, 21, 0.5)]
List1b10 = [(1, 25, 1.5), (2.5, 21, 0.5)]
List1b11 = [(1, 14, 0.5), (1.5, 16, 0.5), (2, 18, 0.5), (2.5, 21, 0.5)]
List1b12 = [(1, 14, 0.5), (1.5, 16, 0.5), (2, 18, 0.5), (2.5, 21, 0.5)]
List1b13 = [(2, 28, 1)]
List1b14 = [(1, 14, 0.5), (1.5, 16, 0.5), (2, 18, 0.5), (2.5, 21, 0.5)]
List1b15 = [(1.5, 18, 0.5), (2, 21, 0.5), (2.5, 26, 0.5)]
List1b16 = [(1, 21, 2)]
List1b17 = [(1, 21, 2)]
#

2

List2b1 = [(23, 6, 1.5), (24.5, 9, 2.5)]
List2b2 = [(23, 6, 1.5), (24.5, 9, 2.5)]
List2b3 = [
    (23, 19, 0.5),
    (23.5, 23, 0.5),
    (24, 25, 0.5),
    (24.5, 28, 0.5),
    (25, 25, 1),
    (26, 23, 0.5),
    (26.5, 21, 1),
]
List2b4 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 21, 1.5),
    (26.5, 18, 0.5),
    (27, 16, 0.5),
    (27.5, 15, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b5 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
]
List2b6 = [
    (25, 21, 1),
    (26, 18, 0.5),
    (26.5, 16, 0.5),
    (27, 14, 0.5),
    (27.5, 16, 0.5),
    (28, 18, 0.5),
    (28.5, 21, 0.5),
]
List2b7 = [
    (23, 30, 1),
    (24, 28, 0.5),
    (24.5, 26, 0.5),
    (25, 25, 0.5),
    (25.5, 23, 0.5),
    (26, 21, 0.5),
    (26.5, 19, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b8 = [
    (23, 19, 0.5),
    (23.5, 23, 0.5),
    (24, 25, 0.5),
    (24.5, 28, 0.5),
    (25, 25, 0.5),
    (25.5, 23, 0.5),
    (26, 25, 0.5),
    (26.5, 21, 0.5),
    (27, 25, 0.5),
    (27.5, 24, 0.5),
    (28, 23, 0.5),
    (28.5, 22, 0.5),
]
List2b9 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b10 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 29, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b11 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b12 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 9, 0.5),
]
List2b13 = [
    (23, 30, 3),
    (26, 29, 0.5),
    (26.5, 28, 0.5),
    (27, 25, 0.5),
    (27.5, 21, 0.5),
    (28, 18, 0.5),
    (28.5, 14, 0.5),
]
List2b14 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 1),
]
List2b15 = [
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
]
List2b16 = [(23, 6, 1.5), (24.5, 9, 2.5)]
List2b17 = [(23, 6, 1.5), (24.5, 9, 2.5)]
#

3

List3b1 = [(45, 18, 2), (47, 18, 1.5), (48.5, 21, 4.5)]
List3b2 = [(45, 18, 2), (47, 18, 1.5), (48.5, 21, 4.5)]
List3b3 = [
    (45, 18, 0.5),
    (45.5, 16, 0.5),
    (46, 14, 0.5),
    (46.5, 13, 1),
    (47.5, 9, 0.5),
    (48, 11, 0.5),
    (48.5, 13, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 21, 0.5),
    (51, 25, 0.5),
    (51.5, 24, 0.5),
    (52, 23, 0.5),
    (52.5, 22, 0.5),
]
List3b4 = [
    (45, 25, 1),
    (46, 26, 3),
    (49, 25, 0.5),
    (49.5, 21, 0.5),
    (50, 23, 0.5),
    (50.5, 25, 0.5),
    (51, 22, 0.5),
    (51.5, 18, 0.5),
    (52, 16, 0.5),
    (52.5, 14, 0.5),
]
List3b5 = [
    (45, 18, 0.5),
    (45.5, 14, 0.5),
    (46, 13, 0.5),
    (46.5, 9, 0.5),
    (47, 11, 0.5),
    (47.5, 10, 0.5),
    (48, 11, 0.5),
    (48.5, 13, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 21, 0.5),
    (51, 25, 0.5),
    (51.5, 21, 0.5),
    (52, 18, 0.5),
    (52.5, 14, 0.5),
]
List3b6 = [
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 28, 1),
    (49, 29, 1.5),
    (50.5, 25, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
]
List3b7 = [
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 0.5),
    (47.5, 28, 2.5),
    (50, 25, 0.5),
    (50.5, 23, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
    (52, 14, 1),
]
List3b8 = [
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 30, 1),
    (49, 28, 1.5),
    (50.5, 25, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
]
List3b9 = [
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 21, 1),
    (49, 21, 1.5),
    (50.5, 18, 0.5),
    (51, 16, 1),
    (52, 14, 1),
]
List3b10 = [
    (45, 18, 1),
    (46, 14, 0.5),
    (46.5, 9, 0.5),
    (47, 13, 1.5),
    (48.5, 9, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 19, 0.5),
    (51, 25, 0.5),
    (51.5, 24, 0.5),
    (52, 23, 1),
    (52.5, 22, 0.5),
]
List3b11 = [
    (45, 18, 0.5),
    (47, 18, 1.5),
    (48.5, 13, 2),
    (50.5, 9, 0.5),
    (51, 14, 0.5),
    (51.5, 16, 0.5),
    (52, 18, 1),
    (52.5, 21, 0.5),
]
List3b12 = [
    (45, 25, 1),
    (47, 28, 2),
    (49, 25, 1.5),
    (50.5, 28, 0.5),
    (51, 25, 0.5),
    (51.5, 21, 0.5),
    (52, 18, 1),
    (52.5, 14, 0.5),
]
List3b13 = [
    (46.5, 25, 2),
    (48.5, 21, 0.5),
    (49, 23, 0.5),
    (49.5, 25, 0.5),
    (50, 21, 0.5),
    (50.5, 18, 1),
    (51.5, 18, 0.5),
    (52, 14, 0.5),
    (52.5, 10, 0.5),
]
List3b14 = [
    (45, 21, 1.5),
    (46.5, 19, 0.5),
    (47, 22, 1),
    (48, 20, 0.5),
    (48.5, 19, 2),
    (50.5, 21, 0.5),
    (51, 28, 1),
    (52, 27, 0.5),
    (52.5, 26, 0.5),
]
List3b15 = [
    (46, 24, 1),
    (47, 23, 1),
    (48, 26, 1),
    (49, 25, 1.5),
    (50.5, 21, 0.5),
    (51, 18, 1),
    (52, 14, 1),
]
List3b16 = [(45, 18, 2), (47, 18, 1.5), (48.5, 21, 4.5)]
List3b17 = [(45, 18, 2), (47, 18, 1.5), (48.5, 21, 4.5)]
#

4

List4b1 = [(61, 21, 1.5), (62.5, 21, 1)]
List4b2 = [
    (61, 16, 0.5),
    (61.5, 19, 0.5),
    (62, 23, 0.5),
    (62.5, 26, 0.5),
    (63, 25, 1.5),
    (64.5, 23, 0.5),
]
List4b3 = [(62, 25, 0.5), (62.5, 26, 0.5), (63, 25, 1.5), (64.5, 21, 0.5)]
List4b4 = [
    (61.5, 16, 0.5),
    (62, 19, 0.33),
    (62.33, 23, 0.33),
    (62.66, 26, 0.33),
    (63, 21, 0.5),
    (63.5, 23, 0.5),
    (64, 25, 0.5),
    (64.5, 28, 0.5),
]
List4b5 = [(61, 18, 1)]
List4b6 = [
    (61.5, 30, 0.5),
    (62, 28, 0.5),
    (62.5, 26, 0.5),
    (63, 25, 1.5),
    (64.5, 21, 0.5),
]
List4b7 = [(62, 28, 2.5), (64.5, 25, 0.5)]
List4b8 = [
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 0.5),
    (
        63.5,
        9,
        0.5,
    ),
    (64, 11, 0.5),
    (64.5, 13, 0.5),
]
List4b9 = [(63.5, 25, 1.5)]
List4b10 = [(62.5, 21, 2.5)]
List4b11 = [
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 1.5),
    (64.5, 7, 0.5),
]
List4b12 = [(61, 27, 0.5), (61.5, 25, 2.5), (62, 11, 0.5)]
List4b13 = [
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 1.5),
    (64.5, 9, 0.5),
]
List4b14 = [(61, 26, 1)]
List4b15 = [(61, 18, 0.5), (61.5, 21, 1.5)]
List4b16 = [(61, 21, 1.5), (62.5, 21, 1)]
#

List4b17 = [none]

ListCodeb1 = [
    List1b1,
    List1b2,
    List1b3,
    List1b4,
    List1b5,
    List1b6,
    List1b7,
    List1b8,
    List1b9,
    List1b10,
    List1b11,
    List1b12,
    List1b13,
    List1b14,
    List1b15,
    List1b16,
    List1b17,
]
ListCodeb2 = [
    List2b1,
    List2b2,
    List2b3,
    List2b4,
    List2b5,
    List2b6,
    List2b7,
    List2b8,
    List2b9,
    List2b10,
    List2b11,
    List2b12,
    List2b13,
    List2b14,
    List2b15,
    List2b16,
    List2b17,
]
ListCodeb3 = [
    List3b1,
    List3b2,
    List3b3,
    List3b4,
    List3b5,
    List3b6,
    List3b7,
    List3b8,
    List3b9,
    List3b10,
    List3b11,
    List3b12,
    List3b13,
    List3b14,
    List3b15,
    List3b16,
    List3b17,
]
ListCodeb4 = [
    List4b1,
    List4b2,
    List4b3,
    List4b4,
    List4b5,
    List4b6,
    List4b7,
    List4b8,
    List4b9,
    List4b10,
    List4b11,
    List4b12,
    List4b13,
    List4b14,
    List4b15,
    List4b16,
]  # ,List4b17
#

E

#

1

List1e1 = [(7, 10, 1), (8.5, 13, 2.5)]
List1e2 = [(7, 10, 1), (8.5, 13, 2.5)]
List1e3 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
]
List1e4 = [
    (7, 25, 0.5),
    (7.5, 24, 0.5),
    (8, 23, 0.5),
    (8.5, 27, 0.5),
    (9, 25, 0.5),
    (9.5, 22, 0.5),
    (10, 20, 0.5),
    (10.5, 18, 0.5),
    (11, 22, 0.5),
    (11.5, 18, 0.5),
]
List1e5 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
]
List1e6 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
]
List1e7 = [
    (7, 25, 0.5),
    (7.5, 24, 0.5),
    (8, 23, 0.5),
    (8.5, 27, 0.5),
    (9, 25, 0.5),
    (9.5, 22, 0.5),
    (10, 20, 0.5),
    (10.5, 18, 0.5),
    (11, 22, 0.5),
    (11.5, 25, 1),
    (12.5, 30, 0.5),
]
List1e8 = [
    (7, 15, 0.5),
    (7.5, 18, 0.5),
    (8, 17, 0.5),
    (8.5, 15, 0.5),
    (9, 13, 0.5),
    (9.5, 15, 0.5),
    (10, 17, 0.5),
    (10.5, 20, 0.5),
    (11, 18, 0.5),
    (11.5, 20, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
]
List1e9 = [
    (7, 15, 0.5),
    (7.5, 18, 0.5),
    (8, 17, 0.5),
    (8.5, 15, 0.5),
    (9, 13, 0.5),
    (9.5, 22, 0.5),
    (12.5, 22, 0.5),
]
List1e10 = [
    (7, 22, 0.5),
    (7.5, 26, 0.5),
    (8, 25, 0.5),
    (8.5, 24, 0.5),
    (9, 23, 0.5),
    (9.5, 27, 0.5),
    (10, 25, 0.5),
    (10.5, 22, 0.5),
    (11, 20, 0.5),
    (11.5, 18, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
]
List1e11 = [
    (7, 23, 1),
    (8, 27, 0.5),
    (8.5, 25, 2),
    (10.5, 22, 0.5),
    (11, 20, 0.5),
    (11.5, 18, 0.5),
]
List1e12 = [
    (7, 29, 2),
    (9, 25, 0.5),
    (9.5, 23, 0.5),
    (10, 22, 0.5),
    (10.5, 20, 0.5),
    (11, 18, 0.5),
    (11.5, 20, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
]
List1e13 = [(7, 24, 0.5), (7.5, 27, 0.5), (8, 25, 1), (11, 29, 2)]
List1e14 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
]
List1e15 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
]
List1e16 = [(7, 10, 1), (8.5, 13, 2.5)]
List1e17 = [(7, 10, 1), (8.5, 13, 2.5)]
#

2

List2e1 = [(19, 13, 2), (21, 10, 2)]
List2e2 = [(19, 13, 2), (21, 10, 2)]
List2e3 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 21, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e4 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e5 = [
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
]
List2e6 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 22, 0.5),
]
List2e7 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e8 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e9 = [
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
]
List2e10 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e11 = [
    (19, 25, 0.5),
    (19.5, 24, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 25, 0.5),
    (21.5, 22, 0.5),
    (22, 20, 0.5),
    (22.5, 18, 0.5),
]
List2e12 = [(19, 23, 0.5), (19.5, 27, 0.5), (20, 25, 0.5), (20.5, 23, 0.5), (21, 22, 1)]
List2e13 = [
    (19, 18, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e14 = [
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
]
List2e15 = [
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
]
List2e16 = [(19, 13, 2), (21, 10, 2)]
List2e17 = [(19, 13, 2), (21, 10, 2)]
#

3

List3e1 = [(29, 10, 2), (31, 8, 1.5), (32, 13, 4.5)]
List3e2 = [(29, 10, 2), (31, 8, 1.5), (32, 13, 4.5)]
List3e3 = [
    (29, 25, 0.5),
    (29.5, 24, 0.5),
    (30, 23, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 0.5),
    (31.5, 18, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
]
List3e4 = [
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 15, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 1),
    (34.5, 23, 0.5),
    (35, 22, 0.5),
    (35.5, 18, 0.5),
]
List3e5 = [
    (31, 29, 1),
    (32.5, 27, 0.25),
    (32.75, 26, 0.25),
    (33, 24, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 20, 0.5),
    (35, 18, 0.5),
    (35.5, 20, 0.5),
    (36, 22, 0.5),
    (36.5, 25, 0.5),
]
List3e6 = [
    (29, 25, 0.5),
    (29.5, 24, 0.5),
    (30, 23, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 1),
    (31.5, 18, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.25),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
]
List3e7 = [
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 1),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.25),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
]
List3e8 = [
    (29, 20, 0.5),
    (29.5, 18, 0.5),
    (30, 17, 0.5),
    (30.5, 15, 0.5),
    (31, 13, 0.5),
    (31.5, 11, 0.5),
    (32, 10, 0.5),
    (32.5, 8, 0.25),
    (33, 6, 0.25),
    (33.25, 8, 0.25),
    (33.5, 10, 0.25),
    (33.75, 11, 0.25),
    (34, 13, 0.25),
    (34.25, 15, 0.25),
    (34.5, 17, 0.25),
    (34.75, 18, 0.25),
    (35, 20, 0.25),
    (35.25, 22, 0.25),
    (35.5, 23, 0.25),
    (35.75, 25, 0.75),
]
List3e9 = [
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
]
List3e10 = [
    (29, 22, 0.5),
    (29.5, 23, 0.5),
    (30, 22, 0.5),
    (30.5, 20, 0.25),
    (30.75, 18, 0.25),
    (31, 17, 0.5),
    (31.5, 15, 0.5),
    (32, 13, 0.5),
    (32.5, 11, 0.5),
    (33, 10, 0.5),
    (33.5, 13, 0.5),
    (34, 15, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 22, 0.5),
    (36.5, 22, 0.5),
]
List3e11 = [
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 1),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
]
List3e12 = [
    (29, 18, 0.5),
    (29.5, 20, 0.5),
    (30, 22, 0.5),
    (30.5, 18, 0.5),
    (31, 25, 0.5),
    (31.5, 22, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 22, 0.5),
    (34, 23, 0.5),
    (34.5, 20, 0.5),
    (35, 18, 0.5),
    (35.5, 20, 0.5),
    (36, 22, 0.5),
    (36.5, 25, 0.5),
]
List3e13 = [
    (29, 29, 1.33),
    (30.33, 27, 0.33),
    (30.66, 26, 0.33),
    (31, 25, 0.5),
    (31.5, 24, 0.5),
    (32, 23, 0.5),
    (32.5, 22, 0.5),
    (33, 20, 0.5),
    (33.5, 18, 0.5),
    (34, 17, 0.5),
    (34.5, 15, 0.5),
    (35, 13, 0.5),
    (35.5, 15, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
]
List3e14 = [
    (29, 29, 1.5),
    (30.5, 27, 0.25),
    (30.75, 26, 0.25),
    (31, 25, 0.5),
    (31.5, 23, 0.5),
    (32, 22, 0.5),
    (32.5, 20, 0.5),
    (33, 18, 0.5),
    (33.5, 20, 0.5),
    (34, 22, 0.5),
    (34.5, 25, 0.5),
    (35, 30, 1),
]
List3e15 = [
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
]
List3e16 = [(29, 10, 2), (31, 8, 1.5), (32, 13, 4.5)]
List3e17 = [(29, 10, 2), (31, 8, 1.5), (32, 13, 4.5)]
#

4

List4e1 = [(53, 22, 2), (55, 22, 1), (56.5, 25, 4.5)]
List4e2 = [(53, 22, 2), (55, 22, 1), (56.5, 25, 3.5)]
List4e3 = [
    (53, 20, 1),
    (55, 22, 0.25),
    (55.25, 23, 0.25),
    (55.5, 22, 0.5),
    (56, 20, 0.5),
    (56.5, 17, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 1),
    (60, 25, 1),
]
List4e4 = [
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 1.5),
    (58.5, 20, 1.5),
]
List4e5 = [
    (53, 23, 1.5),
    (54.5, 22, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 11, 0.5),
    (58, 10, 0.5),
    (58.5, 8, 0.5),
    (59, 6, 0.5),
    (59.5, 8, 0.5),
    (60, 9, 0.5),
    (60.5, 13, 0.5),
]
List4e6 = [
    (53, 29, 2),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 6, 0.5),
    (60, 30, 1),
]
List4e7 = [
    (53, 29, 1.5),
    (54.5, 27, 0.25),
    (54.75, 26, 0.25),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 0.5),
]
List4e8 = [
    (54, 29, 1),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 17, 0.5),
    (58, 20, 0.5),
    (58.5, 17, 0.5),
    (59, 19, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 25, 0.5),
]
List4e9 = [
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 18, 0.5),
    (58, 20, 0.5),
    (58.5, 22, 1),
    (59.5, 22, 0.5),
    (60, 25, 1),
]
List4e10 = [
    (53, 20, 0.5),
    (53.5, 22, 0.5),
    (54, 23, 0.5),
    (54.5, 20, 0.5),
    (55, 25, 0.5),
    (55.5, 21, 0.5),
    (56, 17, 0.5),
    (56.5, 13, 0.5),
    (57, 22, 0.5),
    (57.5, 18, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 1),
]
List4e11 = [
    (53, 25, 0.5),
    (53.5, 24, 0.5),
    (54, 23, 0.5),
    (54.5, 22, 0.5),
    (55, 20, 0.5),
    (55.5, 18, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 23, 0.5),
    (58, 22, 0.5),
    (58.5, 18, 0.5),
    (59, 20, 0.5),
    (59.5, 18, 0.5),
    (60, 17, 0.5),
    (60.5, 15, 0.5),
]
List4e12 = [
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 20, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 18, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 1),
    (60, 25, 0.5),
    (60.5, 27, 0.5),
]
List4e13 = [
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 15, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 25, 0.5),
]
List4e14 = [
    (53, 25, 3.5),
    (56.5, 23, 0.5),
    (57, 22, 0.5),
    (57.5, 18, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 26, 0.5),
]
List4e15 = [
    (53, 29, 2),
    (55, 25, 1.5),
    (56.5, 23, 0.5),
    (57, 22, 0.5),
    (57.5, 20, 1),
    (58.5, 18, 2),
    (60.5, 16, 0.5),
]
List4e16 = [(53, 22, 2), (55, 22, 1), (56.5, 25, 4.5)]
List4e17 = [(53, 22, 2), (55, 22, 1), (56.5, 25, 4.5)]


ListCodee1 = [
    List1e1,
    List1e2,
    List1e3,
    List1e4,
    List1e5,
    List1e6,
    List1e7,
    List1e8,
    List1e9,
    List1e10,
    List1e11,
    List1e12,
    List1e13,
    List1e14,
    List1e15,
    List1e16,
    List1e17,
]
ListCodee2 = [
    List2e1,
    List2e2,
    List2e3,
    List2e4,
    List2e5,
    List2e6,
    List2e7,
    List2e8,
    List2e9,
    List2e10,
    List2e11,
    List2e12,
    List2e13,
    List2e14,
    List2e15,
    List2e16,
    List2e17,
]
ListCodee3 = [
    List3e1,
    List3e2,
    List3e3,
    List3e4,
    List3e5,
    List3e6,
    List3e7,
    List3e8,
    List3e9,
    List3e10,
    List3e11,
    List3e12,
    List3e13,
    List3e14,
    List3e15,
    List3e16,
    List3e17,
]
ListCodee4 = [
    List4e1,
    List4e2,
    List4e3,
    List4e4,
    List4e5,
    List4e6,
    List4e7,
    List4e8,
    List4e9,
    List4e10,
    List4e11,
    List4e12,
    List4e13,
    List4e14,
    List4e15,
    List4e16,
    List4e17,
]
#

G

#

1

List1g1 = [(3, 17, 2), (5, 14, 2)]
List1g2 = [(3, 17, 2), (5, 14, 2)]
List1g3 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 9, 0.5),
]
List1g4 = [
    (4, 28, 0.5),
    (4.5, 27, 0.5),
    (5, 26, 0.5),
    (5.5, 17, 0.5),
    (6, 20, 0.5),
    (6.5, 23, 0.5),
]
List1g5 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g6 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g7 = [
    (4.5, 28, 0.25),
    (4.75, 27, 0.25),
    (5, 26, 0.5),
    (5.5, 17, 0.5),
    (6, 22, 0.5),
    (6.5, 26, 0.5),
]
List1g8 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g9 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g10 = [
    (3, 29, 0.5),
    (3.5, 27, 1),
    (4.5, 24, 1),
    (5.5, 27, 0.5),
    (6, 26, 0.5),
    (6.5, 17, 0.5),
]
List1g11 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 17, 1.5),
    (6.5, 22, 0.25),
    (6.75, 26, 0.25),
]
List1g12 = [(3, 17, 0.5), (3.5, 19, 0.5), (4, 21, 0.5), (4.5, 24, 0.5), (5, 22, 0.5)]
List1g13 = [(3, 29, 1.5), (4.5, 26, 1), (5.5, 30, 0.5), (6, 26, 0.5), (6.5, 22, 0.5)]
List1g14 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g15 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
]
List1g16 = [(3, 17, 2), (5, 14, 2)]
List1g17 = [(3, 17, 2), (5, 14, 2)]
#

2

List2g1 = [(13, 14, 1.5), (14.5, 12, 2.5), (17, 17, 2)]
List2g2 = [(13, 14, 1.5), (14.5, 12, 2.5), (17, 17, 2)]
List2g3 = [
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 12, 0.5),
    (14.5, 10, 0.5),
    (15, 9, 0.5),
    (15.5, 18, 0.5),
    (16, 17, 0.5),
    (16.5, 15, 0.5),
    (17, 14, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
]
List2g4 = [
    (13, 29, 1.5),
    (14.5, 25, 1),
    (15.5, 21, 0.5),
    (16, 17, 1),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
]
List2g5 = [
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 22, 0.5),
    (14.5, 18, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 19, 0.5),
    (16.5, 21, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
]
List2g6 = [
    (13, 19, 0.5),
    (13.5, 23, 0.5),
    (14, 22, 0.5),
    (14.5, 19, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 19, 0.5),
    (16.5, 23, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
]
List2g7 = [
    (13, 30, 0.5),
    (13.5, 17, 1),
    (14.5, 26, 0.5),
    (15, 24, 1),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
]
List2g8 = [
    (13, 26, 0.5),
    (13.5, 24, 0.5),
    (14, 22, 0.5),
    (14.5, 21, 1.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
]
List2g9 = [
    (13, 22, 1.5),
    (14.5, 19, 0.5),
    (15, 21, 0.5),
    (15.5, 22, 0.5),
    (16, 24, 0.5),
    (16.5, 26, 0.5),
    (17, 22, 0.5),
    (17.5, 22, 0.5),
    (18.5, 26, 0.25),
    (18.75, 29, 0.25),
]
List2g10 = [
    (13, 19, 1),
    (15, 26, 0.5),
    (15.5, 24, 0.5),
    (16, 21, 0.5),
    (16.5, 18, 0.5),
    (17, 17, 0.5),
    (17.5, 19, 0.5),
    (18, 21, 0.5),
    (18.5, 24, 0.5),
]
List2g11 = [
    (14, 11, 0.5),
    (14.5, 19, 0.25),
    (14.75, 22, 0.25),
    (15, 26, 1),
    (16, 17, 1),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 27, 0.5),
]
List2g12 = [
    (13, 30, 1),
    (15, 29, 1.5),
    (16.5, 28, 0.25),
    (16.75, 27, 0.25),
    (17, 25, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 25, 0.5),
]
List2g13 = [
    (13, 25, 0.5),
    (13.5, 22, 0.5),
    (14, 18, 1),
    (15, 29, 2),
    (17, 26, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 25, 0.5),
]
List2g14 = [
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 19, 0.5),
    (14.5, 22, 0.5),
    (15, 26, 0.5),
    (15.5, 24, 0.5),
    (16, 21, 0.5),
    (16.5, 18, 0.5),
    (17, 17, 0.5),
    (17.5, 19, 0.5),
    (18, 22, 0.5),
    (18.5, 27, 0.5),
]
List2g15 = [
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 19, 0.5),
    (13.5, 22, 0.5),
    (14, 22, 0.5),
    (14.5, 19, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 22, 0.5),
    (16.5, 26, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
]
List2g16 = [(13, 14, 1.5), (14.5, 12, 2.5), (17, 17, 2)]
List2g17 = [(13, 14, 1.5), (14.5, 12, 2.5), (17, 17, 2)]
#

3

List3g1 = [(37, 14, 2), (39, 12, 1.5), (40.5, 17, 2.5)]
List3g2 = [(37, 14, 2), (39, 12, 1.5), (40.5, 17, 2.5)]
List3g3 = [
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 12, 0.5),
    (38.5, 7, 0.5),
    (39, 10, 0.5),
    (39.5, 7, 0.5),
    (40, 9, 0.5),
    (40.5, 18, 0.5),
    (41, 17, 0.5),
    (41.5, 15, 0.5),
    (42, 14, 0.5),
    (42.5, 12, 0.5),
    (43, 10, 0.5),
    (43.5, 12, 0.5),
    (44, 13, 0.5),
    (44.5, 17, 0.5),
]
List3g4 = [
    (37.5, 12, 0.5),
    (38, 15, 0.33),
    (38.33, 19, 0.33),
    (38.66, 22, 0.33),
    (39, 26, 0.5),
    (39.5, 24, 0.5),
    (40, 21, 0.5),
    (40.5, 19, 0.5),
    (41, 17, 0.5),
    (41.5, 19, 0.5),
    (42, 21, 0.5),
    (42.5, 24, 0.5),
    (43, 21, 0.5),
    (43.5, 23, 0.5),
    (44, 26, 0.5),
    (44.5, 25, 0.5),
]
List3g5 = [
    (37, 29, 3.5),
    (40.5, 28, 0.25),
    (40.75, 27, 0.25),
    (41, 26, 0.5),
    (41.5, 21, 0.5),
    (42, 23, 0.5),
    (42.5, 21, 0.5),
    (43, 22, 0.5),
    (43.5, 17, 0.5),
    (44, 14, 0.5),
    (44.5, 10, 0.5),
]
List3g6 = [
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 12, 0.5),
    (38.5, 7, 0.5),
    (39, 10, 1.5),
    (40.5, 9, 0.5),
    (41, 17, 1),
    (43, 26, 1),
]
List3g7 = [
    (37, 24, 0.5),
    (37.5, 22, 1),
    (38.5, 17, 0.25),
    (38.75, 22, 0.25),
    (39, 26, 1),
    (40, 22, 0.5),
    (40.5, 25, 2),
    (42.5, 22, 0.5),
    (43, 26, 0.5),
    (43.5, 29, 0.5),
]
List3g8 = [
    (38, 12, 0.25),
    (38.25, 14, 0.25),
    (38.5, 15, 0.25),
    (38.75, 17, 0.25),
    (39, 19, 0.25),
    (39.25, 21, 0.25),
    (39.5, 22, 0.25),
    (39.75, 24, 0.25),
    (40, 26, 2.5),
    (42.5, 21, 0.5),
    (43, 24, 0.5),
    (43.5, 22, 0.5),
]
List3g9 = [
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 12, 0.5),
    (38.5, 10, 0.5),
    (39, 17, 1.5),
    (40.5, 15, 0.5),
    (41, 14, 0.5),
    (41.5, 17, 0.5),
    (42, 19, 0.5),
    (42.5, 21, 1.5),
]
List3g10 = [
    (39, 22, 0.5),
    (39.5, 19, 0.5),
    (40, 21, 0.5),
    (40.5, 24, 0.5),
    (41, 22, 0.5),
    (41.5, 17, 0.5),
    (42, 14, 0.5),
    (42.5, 10, 0.5),
    (43, 17, 1),
]
List3g11 = [
    (37, 19, 0.5),
    (37.5, 23, 0.5),
    (38.5, 19, 0.5),
    (39, 26, 0.5),
    (39.5, 24, 0.5),
    (40, 21, 0.5),
    (40.5, 19, 0.5),
    (41, 17, 0.5),
    (41.5, 19, 0.5),
    (42, 21, 0.5),
    (42.5, 24, 0.5),
    (43, 22, 0.5),
    (43.5, 17, 0.5),
    (44, 14, 0.5),
]
List3g12 = [
    (37, 26, 0.5),
    (37.5, 24, 0.5),
    (38, 22, 0.5),
    (38.5, 21, 1),
    (39.5, 19, 0.5),
    (40, 17, 0.5),
    (40.5, 15, 0.5),
    (41, 14, 0.5),
    (41.5, 17, 0.5),
    (42, 22, 0.5),
    (42.5, 24, 0.5),
    (43, 26, 0.5),
    (43.5, 17, 0.5),
    (44, 22, 0.5),
    (44.5, 26, 0.5),
]
List3g13 = [
    (37, 19, 0.5),
    (37.5, 22, 0.5),
    (38, 22, 0.5),
    (38.5, 19, 0.5),
    (39, 29, 1.5),
    (40.5, 28, 0.5),
    (41, 26, 1),
    (42, 21, 0.5),
    (42.5, 24, 1),
    (43.5, 26, 0.5),
    (44, 22, 1),
]
List3g14 = [(38.5, 29, 3.5), (42, 26, 0.5), (42.5, 21, 1), (43.5, 21, 0.5), (44, 19, 1)]
List3g15 = [
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 19, 0.33),
    (38.33, 21, 0.33),
    (38.66, 24, 0.33),
    (39, 26, 1),
    (40, 24, 1),
    (41, 24, 1.5),
    (42.5, 21, 0.5),
    (43, 17, 0.5),
    (43.5, 14, 0.5),
]
List3g16 = [(37, 14, 2), (39, 12, 1.5), (40.5, 17, 2.5)]
List3g17 = [(37, 14, 2), (39, 12, 1.5), (40.5, 17, 2.5)]


ListCodeg1 = [
    List1g1,
    List1g2,
    List1g3,
    List1g4,
    List1g5,
    List1g6,
    List1g7,
    List1g8,
    List1g9,
    List1g10,
    List1g11,
    List1g12,
    List1g13,
    List1g14,
    List1g15,
    List1g16,
    List1g17,
]
ListCodeg2 = [
    List2g1,
    List2g2,
    List2g3,
    List2g4,
    List2g5,
    List2g6,
    List2g7,
    List2g8,
    List2g9,
    List2g10,
    List2g11,
    List2g12,
    List2g13,
    List2g14,
    List2g15,
    List2g16,
    List2g17,
]
ListCodeg3 = [
    List3g1,
    List3g2,
    List3g3,
    List3g4,
    List3g5,
    List3g6,
    List3g7,
    List3g8,
    List3g9,
    List3g10,
    List3g11,
    List3g12,
    List3g13,
    List3g14,
    List3g15,
    List3g16,
    List3g17,
]


angle30 = 1.57 / 3
angle60 = 3.14 / 3
angleA = 1.57  # to ratate 90 in advance
anglex = 3.14  # for the shape of G code
t = 3
#

for the 3D model bpy.ops.mesh.primitive_cube_add(size=1,location=(0,0.25,0),scale=(10,0.5,0.5))

ListBrandom1 = random.choice(ListCodeb1)
ListBrandom2 = random.choice(ListCodeb2)
ListBrandom3 = random.choice(ListCodeb3)
ListBrandom4 = random.choice(ListCodeb4)
ListErandom1 = random.choice(ListCodee1)
ListErandom2 = random.choice(ListCodee2)
ListErandom3 = random.choice(ListCodee3)
ListErandom4 = random.choice(ListCodee4)
ListGrandom1 = random.choice(ListCodeg1)
ListGrandom2 = random.choice(ListCodeg2)
ListGrandom3 = random.choice(ListCodeg3)
ListQ = [(31.5, 0.5, 1)]
"X, length og note(64hakubunnonagasa,yueni,64shousetuwo10cmniwaketa)  Y,10cm  _Z, highth of code, 1-30, yueni/t=3"
#

B

l = random.choice([5, 7, 10])
for note in ListBrandom1:
    x, y, z = note
    bpy.ops.object.select_all(action="DESELECT")
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)


l = random.choice([5, 7, 10])
for note in ListBrandom2:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListBrandom3:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListBrandom4:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)
#

E

l = random.choice([5, 7, 10])
for note in ListErandom1:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1, location=((x + z / 2 - 32) * 5 / 32, 0, 0), scale=(z * 5 / 32, y / t, l)
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)


l = random.choice([5, 7, 10])
for note in ListErandom2:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1, location=((x + z / 2 - 32) * 5 / 32, 0, 0), scale=(z * 5 / 32, y / t, l)
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListErandom3:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1, location=((x + z / 2 - 32) * 5 / 32, 0, 0), scale=(z * 5 / 32, y / t, l)
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListErandom4:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1, location=((x + z / 2 - 32) * 5 / 32, 0, 0), scale=(z * 5 / 32, y / t, l)
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)
#

G

l = random.choice([5, 7, 10])
for note in ListGrandom1:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    bpy.ops.transform.rotate(value=anglex, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListGrandom2:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    bpy.ops.transform.rotate(value=anglex, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)

l = random.choice([5, 7, 10])
for note in ListGrandom3:
    x, y, z = note
    bpy.ops.mesh.primitive_cube_add(
        size=1,
        location=((x + z / 2 - 32) * 5 / 32, y / (2 * t) - 5, 0),
        scale=(z * 5 / 32, y / t, l),
    )
    shape = bpy.context.selected_objects[0]
    bpy.ops.object.origin_set(type="ORIGIN_CURSOR", center="MEDIAN")
    bpy.ops.transform.rotate(value=angleA, orient_axis="X")
    bpy.ops.transform.rotate(value=anglex, orient_axis="X")
    shape.location = (-0.15, (10 - l) / 2, 0)


ListB1 = [
    (1, 21, 2),
    (23, 6, 1.5),
    (24.5, 9, 2.5),
    (45, 18, 2),
    (47, 18, 1.5),
    (48.5, 21, 4.5),
    (61, 21, 1.5),
    (62.5, 21, 1),
]
ListB2 = [
    (1, 21, 2),
    (23, 6, 1.5),
    (24.5, 9, 2.5),
    (45, 18, 2),
    (47, 18, 1.5),
    (48.5, 21, 4.5),
    (61, 16, 0.5),
    (61.5, 19, 0.5),
    (62, 23, 0.5),
    (62.5, 26, 0.5),
    (63, 25, 1.5),
    (64.5, 23, 0.5),
]
ListB3 = [
    (1, 21, 0.5),
    (1.5, 18, 0.5),
    (2, 14, 1),
    (23, 19, 0.5),
    (23.5, 23, 0.5),
    (24, 25, 0.5),
    (24.5, 28, 0.5),
    (25, 25, 1),
    (26, 23, 0.5),
    (26.5, 21, 1),
    (45, 18, 0.5),
    (45.5, 16, 0.5),
    (46, 14, 0.5),
    (46.5, 13, 1),
    (47.5, 9, 0.5),
    (48, 11, 0.5),
    (48.5, 13, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 21, 0.5),
    (51, 25, 0.5),
    (51.5, 24, 0.5),
    (52, 23, 0.5),
    (52.5, 22, 0.5),
    (62, 25, 0.5),
    (62.5, 26, 0.5),
    (63, 25, 1.5),
    (64.5, 21, 0.5),
]
ListB4 = [
    (1, 29, 2),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 21, 1.5),
    (26.5, 18, 0.5),
    (27, 16, 0.5),
    (27.5, 15, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45, 25, 1),
    (46, 26, 3),
    (49, 25, 0.5),
    (49.5, 21, 0.5),
    (50, 23, 0.5),
    (50.5, 25, 0.5),
    (51, 22, 0.5),
    (51.5, 18, 0.5),
    (52, 16, 0.5),
    (52.5, 14, 0.5),
    (61.5, 16, 0.5),
    (62, 19, 0.33),
    (62.33, 23, 0.33),
    (62.66, 26, 0.33),
    (63, 21, 0.5),
    (63.5, 23, 0.5),
    (64, 25, 0.5),
    (64.5, 28, 0.5),
]
ListB5 = [
    (1, 26, 0.5),
    (1.5, 16, 0.5),
    (2, 18, 0.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (45, 18, 0.5),
    (45.5, 14, 0.5),
    (46, 13, 0.5),
    (46.5, 9, 0.5),
    (47, 11, 0.5),
    (47.5, 10, 0.5),
    (48, 11, 0.5),
    (48.5, 13, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 21, 0.5),
    (51, 25, 0.5),
    (51.5, 21, 0.5),
    (52, 18, 0.5),
    (52.5, 14, 0.5),
    (61, 18, 1),
]
ListB6 = [
    (1.5, 9, 0.5),
    (2, 14, 0.5),
    (2.5, 18, 0.5),
    (25, 21, 1),
    (26, 18, 0.5),
    (26.5, 16, 0.5),
    (27, 14, 0.5),
    (27.5, 16, 0.5),
    (28, 18, 0.5),
    (28.5, 21, 0.5),
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 28, 1),
    (49, 29, 1.5),
    (50.5, 25, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
    (61.5, 30, 0.5),
    (62, 28, 0.5),
    (62.5, 26, 0.5),
    (63, 25, 1.5),
    (64.5, 21, 0.5),
]
ListB7 = [
    (1, 29, 3.5),
    (23, 30, 1),
    (24, 28, 0.5),
    (24.5, 26, 0.5),
    (25, 25, 0.5),
    (25.5, 23, 0.5),
    (26, 21, 0.5),
    (26.5, 19, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 0.5),
    (47.5, 28, 2.5),
    (50, 25, 0.5),
    (50.5, 23, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
    (52, 14, 1),
    (62, 28, 2.5),
    (64.5, 25, 0.5),
]
ListB8 = [
    (1, 23, 0.5),
    (1.5, 21, 0.5),
    (2, 18, 0.5),
    (2.5, 14, 0.5),
    (23, 19, 0.5),
    (23.5, 23, 0.5),
    (24, 25, 0.5),
    (24.5, 28, 0.5),
    (25, 25, 0.5),
    (25.5, 23, 0.5),
    (26, 25, 0.5),
    (26.5, 21, 0.5),
    (27, 25, 0.5),
    (27.5, 24, 0.5),
    (28, 23, 0.5),
    (28.5, 22, 0.5),
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 30, 1),
    (49, 28, 1.5),
    (50.5, 25, 0.5),
    (51, 21, 0.5),
    (51.5, 18, 0.5),
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 0.5),
    (
        63.5,
        9,
        0.5,
    ),
    (64, 11, 0.5),
    (64.5, 13, 0.5),
]
ListB9 = [
    (1, 14, 0.5),
    (1.5, 16, 0.5),
    (2, 18, 0.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45.5, 16, 0.5),
    (46, 19, 0.33),
    (46.33, 23, 0.33),
    (46.66, 26, 0.33),
    (47, 25, 1),
    (48, 21, 1),
    (49, 21, 1.5),
    (50.5, 18, 0.5),
    (51, 16, 1),
    (52, 14, 1),
    (63.5, 25, 1.5),
]
ListB10 = [
    (1, 25, 1.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 29, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45, 18, 1),
    (46, 14, 0.5),
    (46.5, 9, 0.5),
    (47, 13, 1.5),
    (48.5, 9, 0.5),
    (49, 14, 0.5),
    (49.5, 16, 0.5),
    (50, 18, 0.5),
    (50.5, 19, 0.5),
    (51, 25, 0.5),
    (51.5, 24, 0.5),
    (52, 23, 1),
    (52.5, 22, 0.5),
    (62.5, 21, 2.5),
]
ListB11 = [
    (1, 14, 0.5),
    (1.5, 16, 0.5),
    (2, 18, 0.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45, 18, 0.5),
    (47, 18, 1.5),
    (48.5, 13, 2),
    (50.5, 9, 0.5),
    (51, 14, 0.5),
    (51.5, 16, 0.5),
    (52, 18, 1),
    (52.5, 21, 0.5),
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 1.5),
    (64.5, 7, 0.5),
]
ListB12 = [
    (1, 14, 0.5),
    (1.5, 16, 0.5),
    (2, 18, 0.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 0.5),
    (28.5, 9, 0.5),
    (45, 25, 1),
    (47, 28, 2),
    (49, 25, 1.5),
    (50.5, 28, 0.5),
    (51, 25, 0.5),
    (51.5, 21, 0.5),
    (52, 18, 1),
    (52.5, 14, 0.5),
    (61, 27, 0.5),
    (61.5, 25, 2.5),
    (62, 11, 0.5),
]
ListB13 = [
    (2, 28, 1),
    (23, 30, 3),
    (26, 29, 0.5),
    (26.5, 28, 0.5),
    (27, 25, 0.5),
    (27.5, 21, 0.5),
    (28, 18, 0.5),
    (28.5, 14, 0.5),
    (46.5, 25, 2),
    (48.5, 21, 0.5),
    (49, 23, 0.5),
    (49.5, 25, 0.5),
    (50, 21, 0.5),
    (50.5, 18, 1),
    (51.5, 18, 0.5),
    (52, 14, 0.5),
    (52.5, 10, 0.5),
    (61, 18, 0.5),
    (61.5, 14, 0.5),
    (62, 11, 0.5),
    (62.5, 7, 0.5),
    (63, 13, 1.5),
    (64.5, 9, 0.5),
]
ListB14 = [
    (1, 14, 0.5),
    (1.5, 16, 0.5),
    (2, 18, 0.5),
    (2.5, 21, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 1),
    (26, 25, 0.5),
    (26.5, 23, 0.5),
    (27, 21, 0.5),
    (27.5, 18, 0.5),
    (28, 14, 1),
    (45, 21, 1.5),
    (46.5, 19, 0.5),
    (47, 22, 1),
    (48, 20, 0.5),
    (48.5, 19, 2),
    (50.5, 21, 0.5),
    (51, 28, 1),
    (52, 27, 0.5),
    (52.5, 26, 0.5),
    (61, 26, 1),
]
ListB15 = [
    (1.5, 18, 0.5),
    (2, 21, 0.5),
    (2.5, 26, 0.5),
    (23, 19, 0.5),
    (23.5, 21, 0.5),
    (24, 23, 0.5),
    (24.5, 25, 0.5),
    (25, 28, 0.5),
    (25.5, 25, 0.5),
    (26, 23, 0.5),
    (26.5, 21, 0.5),
    (27, 18, 0.5),
    (27.5, 16, 0.5),
    (28, 14, 0.5),
    (28.5, 10, 0.5),
    (45, 18, 2),
    (47, 18, 1.5),
    (48.5, 21, 4.5),
    (61, 18, 0.5),
    (61.5, 21, 1.5),
]
ListB16 = [
    (1, 21, 2),
    (23, 6, 1.5),
    (24.5, 9, 2.5),
    (45, 18, 2),
    (47, 18, 1.5),
    (48.5, 21, 4.5),
    (61, 21, 1.5),
    (62.5, 21, 1),
]
ListB17 = [
    (1, 21, 2),
    (23, 6, 1.5),
    (24.5, 9, 2.5),
    (45, 18, 2),
    (47, 18, 1.5),
    (48.5, 21, 4.5),
]


ListE1 = [
    (7, 10, 1),
    (8.5, 13, 2.5),
    (19, 13, 2),
    (21, 10, 2),
    (29, 10, 2),
    (31, 8, 1.5),
    (32, 13, 4.5),
    (53, 22, 2),
    (55, 22, 1),
    (56.5, 25, 4.5),
]
ListE2 = [
    (7, 10, 1),
    (8.5, 13, 2.5),
    (19, 13, 2),
    (21, 10, 2),
    (29, 10, 2),
    (31, 8, 1.5),
    (32, 13, 4.5),
    (53, 22, 2),
    (55, 22, 1),
    (56.5, 25, 3.5),
]
ListE3 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 21, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 25, 0.5),
    (29.5, 24, 0.5),
    (30, 23, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 0.5),
    (31.5, 18, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
    (53, 20, 1),
    (55, 22, 0.25),
    (55.25, 23, 0.25),
    (55.5, 22, 0.5),
    (56, 20, 0.5),
    (56.5, 17, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 1),
    (60, 25, 1),
]
ListE4 = [
    (7, 25, 0.5),
    (7.5, 24, 0.5),
    (8, 23, 0.5),
    (8.5, 27, 0.5),
    (9, 25, 0.5),
    (9.5, 22, 0.5),
    (10, 20, 0.5),
    (10.5, 18, 0.5),
    (11, 22, 0.5),
    (11.5, 18, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 15, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 1),
    (34.5, 23, 0.5),
    (35, 22, 0.5),
    (35.5, 18, 0.5),
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 1.5),
    (58.5, 20, 1.5),
]
ListE5 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
    (31, 29, 1),
    (32.5, 27, 0.25),
    (32.75, 26, 0.25),
    (33, 24, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 20, 0.5),
    (35, 18, 0.5),
    (35.5, 20, 0.5),
    (36, 22, 0.5),
    (36.5, 25, 0.5),
    (53, 23, 1.5),
    (54.5, 22, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 11, 0.5),
    (58, 10, 0.5),
    (58.5, 8, 0.5),
    (59, 6, 0.5),
    (59.5, 8, 0.5),
    (60, 9, 0.5),
    (60.5, 13, 0.5),
]
ListE6 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 22, 0.5),
    (29, 25, 0.5),
    (29.5, 24, 0.5),
    (30, 23, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 1),
    (31.5, 18, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.25),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
    (53, 29, 2),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 6, 0.5),
    (60, 30, 1),
]
ListE7 = [
    (7, 25, 0.5),
    (7.5, 24, 0.5),
    (8, 23, 0.5),
    (8.5, 27, 0.5),
    (9, 25, 0.5),
    (9.5, 22, 0.5),
    (10, 20, 0.5),
    (10.5, 18, 0.5),
    (11, 22, 0.5),
    (11.5, 25, 1),
    (12.5, 30, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 1),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.25),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
    (53, 29, 1.5),
    (54.5, 27, 0.25),
    (54.75, 26, 0.25),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 20, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 0.5),
]
ListE8 = [
    (7, 15, 0.5),
    (7.5, 18, 0.5),
    (8, 17, 0.5),
    (8.5, 15, 0.5),
    (9, 13, 0.5),
    (9.5, 15, 0.5),
    (10, 17, 0.5),
    (10.5, 20, 0.5),
    (11, 18, 0.5),
    (11.5, 20, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 20, 0.5),
    (29.5, 18, 0.5),
    (30, 17, 0.5),
    (30.5, 15, 0.5),
    (31, 13, 0.5),
    (31.5, 11, 0.5),
    (32, 10, 0.5),
    (32.5, 8, 0.25),
    (33, 6, 0.25),
    (33.25, 8, 0.25),
    (33.5, 10, 0.25),
    (33.75, 11, 0.25),
    (34, 13, 0.25),
    (34.25, 15, 0.25),
    (34.5, 17, 0.25),
    (34.75, 18, 0.25),
    (35, 20, 0.25),
    (35.25, 22, 0.25),
    (35.5, 23, 0.25),
    (35.75, 25, 0.75),
    (54, 29, 1),
    (55, 25, 0.5),
    (55.5, 23, 0.5),
    (56, 22, 0.5),
    (56.5, 20, 0.5),
    (57, 18, 0.5),
    (57.5, 17, 0.5),
    (58, 20, 0.5),
    (58.5, 17, 0.5),
    (59, 19, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 25, 0.5),
]
ListE9 = [
    (7, 15, 0.5),
    (7.5, 18, 0.5),
    (8, 17, 0.5),
    (8.5, 15, 0.5),
    (9, 13, 0.5),
    (9.5, 22, 0.5),
    (12.5, 22, 0.5),
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 18, 0.5),
    (58, 20, 0.5),
    (58.5, 22, 1),
    (59.5, 22, 0.5),
    (60, 25, 1),
]
ListE10 = [
    (7, 22, 0.5),
    (7.5, 26, 0.5),
    (8, 25, 0.5),
    (8.5, 24, 0.5),
    (9, 23, 0.5),
    (9.5, 27, 0.5),
    (10, 25, 0.5),
    (10.5, 22, 0.5),
    (11, 20, 0.5),
    (11.5, 18, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 22, 0.5),
    (29.5, 23, 0.5),
    (30, 22, 0.5),
    (30.5, 20, 0.25),
    (30.75, 18, 0.25),
    (31, 17, 0.5),
    (31.5, 15, 0.5),
    (32, 13, 0.5),
    (32.5, 11, 0.5),
    (33, 10, 0.5),
    (33.5, 13, 0.5),
    (34, 15, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 22, 0.5),
    (36.5, 22, 0.5),
    (53, 20, 0.5),
    (53.5, 22, 0.5),
    (54, 23, 0.5),
    (54.5, 20, 0.5),
    (55, 25, 0.5),
    (55.5, 21, 0.5),
    (56, 17, 0.5),
    (56.5, 13, 0.5),
    (57, 22, 0.5),
    (57.5, 18, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 1),
]
ListE11 = [
    (7, 23, 1),
    (8, 27, 0.5),
    (8.5, 25, 2),
    (10.5, 22, 0.5),
    (11, 20, 0.5),
    (11.5, 18, 0.5),
    (19, 25, 0.5),
    (19.5, 24, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 25, 0.5),
    (21.5, 22, 0.5),
    (22, 20, 0.5),
    (22.5, 18, 0.5),
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 22, 0.5),
    (31, 20, 1),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
    (53, 25, 0.5),
    (53.5, 24, 0.5),
    (54, 23, 0.5),
    (54.5, 22, 0.5),
    (55, 20, 0.5),
    (55.5, 18, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 23, 0.5),
    (58, 22, 0.5),
    (58.5, 18, 0.5),
    (59, 20, 0.5),
    (59.5, 18, 0.5),
    (60, 17, 0.5),
    (60.5, 15, 0.5),
]
ListE12 = [
    (7, 29, 2),
    (9, 25, 0.5),
    (9.5, 23, 0.5),
    (10, 22, 0.5),
    (10.5, 20, 0.5),
    (11, 18, 0.5),
    (11.5, 20, 0.5),
    (12, 22, 0.5),
    (12.5, 25, 0.5),
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 1),
    (29, 18, 0.5),
    (29.5, 20, 0.5),
    (30, 22, 0.5),
    (30.5, 18, 0.5),
    (31, 25, 0.5),
    (31.5, 22, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 22, 0.5),
    (34, 23, 0.5),
    (34.5, 20, 0.5),
    (35, 18, 0.5),
    (35.5, 20, 0.5),
    (36, 22, 0.5),
    (36.5, 25, 0.5),
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 20, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 18, 0.5),
    (58, 22, 0.5),
    (58.5, 25, 0.5),
    (59, 30, 1),
    (60, 25, 0.5),
    (60.5, 27, 0.5),
]
ListE13 = [
    (7, 24, 0.5),
    (7.5, 27, 0.5),
    (8, 25, 1),
    (11, 29, 2),
    (19, 18, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 29, 1.33),
    (30.33, 27, 0.33),
    (30.66, 26, 0.33),
    (31, 25, 0.5),
    (31.5, 24, 0.5),
    (32, 23, 0.5),
    (32.5, 22, 0.5),
    (33, 20, 0.5),
    (33.5, 18, 0.5),
    (34, 17, 0.5),
    (34.5, 15, 0.5),
    (35, 13, 0.5),
    (35.5, 15, 0.5),
    (36, 17, 0.5),
    (36.5, 20, 0.5),
    (53, 15, 0.5),
    (53.5, 17, 0.5),
    (54, 18, 0.5),
    (54.5, 15, 0.5),
    (55, 22, 0.5),
    (55.5, 20, 0.5),
    (56, 17, 0.5),
    (56.5, 15, 0.5),
    (57, 13, 0.5),
    (57.5, 15, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 25, 0.5),
]
ListE14 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
    (19, 17, 0.5),
    (19.5, 20, 0.5),
    (20, 23, 0.5),
    (20.5, 27, 0.5),
    (21, 18, 0.5),
    (21.5, 20, 0.5),
    (22, 22, 0.5),
    (22.5, 25, 0.5),
    (29, 29, 1.5),
    (30.5, 27, 0.25),
    (30.75, 26, 0.25),
    (31, 25, 0.5),
    (31.5, 23, 0.5),
    (32, 22, 0.5),
    (32.5, 20, 0.5),
    (33, 18, 0.5),
    (33.5, 20, 0.5),
    (34, 22, 0.5),
    (34.5, 25, 0.5),
    (35, 30, 1),
    (53, 25, 3.5),
    (56.5, 23, 0.5),
    (57, 22, 0.5),
    (57.5, 18, 0.5),
    (58, 17, 0.5),
    (58.5, 20, 0.5),
    (59, 18, 0.5),
    (59.5, 20, 0.5),
    (60, 22, 0.5),
    (60.5, 26, 0.5),
]
ListE15 = [
    (7, 15, 0.5),
    (7.5, 11, 0.5),
    (8, 10, 0.5),
    (8.5, 8, 0.5),
    (9, 6, 0.5),
    (9.5, 8, 0.5),
    (10, 10, 0.5),
    (10.5, 11, 0.5),
    (11, 13, 0.5),
    (11.5, 15, 0.5),
    (12, 17, 0.5),
    (12.5, 20, 0.5),
    (19, 23, 0.5),
    (19.5, 27, 0.5),
    (20, 25, 0.5),
    (20.5, 23, 0.5),
    (21, 22, 0.5),
    (21.5, 18, 0.5),
    (22, 20, 0.5),
    (22.5, 22, 0.5),
    (29, 15, 0.5),
    (29.5, 17, 0.5),
    (30, 18, 0.5),
    (30.5, 20, 0.5),
    (31, 22, 0.5),
    (31.5, 20, 0.5),
    (32, 17, 0.5),
    (32.5, 15, 0.5),
    (33, 13, 0.5),
    (33.5, 23, 0.5),
    (34, 22, 0.5),
    (34.5, 17, 0.5),
    (35, 20, 0.5),
    (35.5, 18, 0.5),
    (36, 17, 0.5),
    (36.5, 15, 0.5),
    (53, 29, 2),
    (55, 25, 1.5),
    (56.5, 23, 0.5),
    (57, 22, 0.5),
    (57.5, 20, 1),
    (58.5, 18, 2),
    (60.5, 16, 0.5),
]
ListE16 = [
    (7, 10, 1),
    (8.5, 13, 2.5),
    (19, 13, 2),
    (21, 10, 2),
    (29, 10, 2),
    (31, 8, 1.5),
    (32, 13, 4.5),
    (53, 22, 2),
    (55, 22, 1),
    (56.5, 25, 4.5),
]
ListE17 = [
    (7, 10, 1),
    (8.5, 13, 2.5),
    (19, 13, 2),
    (21, 10, 2),
    (29, 10, 2),
    (31, 8, 1.5),
    (32, 13, 4.5),
    (53, 22, 2),
    (55, 22, 1),
    (56.5, 25, 4.5),
]

ListG1 = [
    (3, 17, 2),
    (5, 14, 2),
    (13, 14, 1.5),
    (14.5, 12, 2.5),
    (17, 17, 2),
    (37, 14, 2),
    (39, 12, 1.5),
    (40.5, 17, 2.5),
]
ListG2 = [
    (3, 17, 2),
    (5, 14, 2),
    (13, 14, 1.5),
    (14.5, 12, 2.5),
    (17, 17, 2),
    (37, 14, 2),
    (39, 12, 1.5),
    (40.5, 17, 2.5),
]
ListG3 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 9, 0.5),
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 12, 0.5),
    (14.5, 10, 0.5),
    (15, 9, 0.5),
    (15.5, 18, 0.5),
    (16, 17, 0.5),
    (16.5, 15, 0.5),
    (17, 14, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
]
ListG4 = [
    (4, 28, 0.5),
    (4.5, 27, 0.5),
    (5, 26, 0.5),
    (5.5, 17, 0.5),
    (6, 20, 0.5),
    (6.5, 23, 0.5),
    (13, 29, 1.5),
    (14.5, 25, 1),
    (15.5, 21, 0.5),
    (16, 17, 1),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
    (37.5, 12, 0.5),
    (38, 15, 0.33),
    (38.33, 19, 0.33),
    (38.66, 22, 0.33),
    (39, 26, 0.5),
    (39.5, 24, 0.5),
    (40, 21, 0.5),
    (40.5, 19, 0.5),
    (41, 17, 0.5),
    (41.5, 19, 0.5),
    (42, 21, 0.5),
    (42.5, 24, 0.5),
    (43, 21, 0.5),
    (43.5, 23, 0.5),
    (44, 26, 0.5),
    (44.5, 25, 0.5),
]
ListG5 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 22, 0.5),
    (14.5, 18, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 19, 0.5),
    (16.5, 21, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
    (37, 29, 3.5),
    (40.5, 28, 0.25),
    (40.75, 27, 0.25),
    (41, 26, 0.5),
    (41.5, 21, 0.5),
    (42, 23, 0.5),
    (42.5, 21, 0.5),
    (43, 22, 0.5),
    (43.5, 17, 0.5),
    (44, 14, 0.5),
    (44.5, 10, 0.5),
]
ListG6 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 19, 0.5),
    (13.5, 23, 0.5),
    (14, 22, 0.5),
    (14.5, 19, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 19, 0.5),
    (16.5, 23, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 12, 0.5),
    (38.5, 7, 0.5),
    (39, 10, 1.5),
    (40.5, 9, 0.5),
    (41, 17, 1),
    (43, 26, 1),
]
ListG7 = [
    (4.5, 28, 0.25),
    (4.75, 27, 0.25),
    (5, 26, 0.5),
    (5.5, 17, 0.5),
    (6, 22, 0.5),
    (6.5, 26, 0.5),
    (13, 30, 0.5),
    (13.5, 17, 1),
    (14.5, 26, 0.5),
    (15, 24, 1),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
    (37, 24, 0.5),
    (37.5, 22, 1),
    (38.5, 17, 0.25),
    (38.75, 22, 0.25),
    (39, 26, 1),
    (40, 22, 0.5),
    (40.5, 25, 2),
    (42.5, 22, 0.5),
    (43, 26, 0.5),
    (43.5, 29, 0.5),
]
ListG8 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 26, 0.5),
    (13.5, 24, 0.5),
    (14, 22, 0.5),
    (14.5, 21, 1.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 26, 0.5),
    (38, 12, 0.25),
    (38.25, 14, 0.25),
    (38.5, 15, 0.25),
    (38.75, 17, 0.25),
    (39, 19, 0.25),
    (39.25, 21, 0.25),
    (39.5, 22, 0.25),
    (39.75, 24, 0.25),
    (40, 26, 2.5),
    (42.5, 21, 0.5),
    (43, 24, 0.5),
    (43.5, 22, 0.5),
]
ListG9 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 22, 1.5),
    (14.5, 19, 0.5),
    (15, 21, 0.5),
    (15.5, 22, 0.5),
    (16, 24, 0.5),
    (16.5, 26, 0.5),
    (17, 22, 0.5),
    (17.5, 22, 0.5),
    (18.5, 26, 0.25),
    (18.75, 29, 0.25),
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 12, 0.5),
    (38.5, 10, 0.5),
    (39, 17, 1.5),
    (40.5, 15, 0.5),
    (41, 14, 0.5),
    (41.5, 17, 0.5),
    (42, 19, 0.5),
    (42.5, 21, 1.5),
]
ListG10 = [
    (3, 29, 0.5),
    (3.5, 27, 1),
    (4.5, 24, 1),
    (5.5, 27, 0.5),
    (6, 26, 0.5),
    (6.5, 17, 0.5),
    (13, 19, 1),
    (15, 26, 0.5),
    (15.5, 24, 0.5),
    (16, 21, 0.5),
    (16.5, 18, 0.5),
    (17, 17, 0.5),
    (17.5, 19, 0.5),
    (18, 21, 0.5),
    (18.5, 24, 0.5),
    (39, 22, 0.5),
    (39.5, 19, 0.5),
    (40, 21, 0.5),
    (40.5, 24, 0.5),
    (41, 22, 0.5),
    (41.5, 17, 0.5),
    (42, 14, 0.5),
    (42.5, 10, 0.5),
    (43, 17, 1),
]
ListG11 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 17, 1.5),
    (6.5, 22, 0.25),
    (6.75, 26, 0.25),
    (14, 11, 0.5),
    (14.5, 19, 0.25),
    (14.75, 22, 0.25),
    (15, 26, 1),
    (16, 17, 1),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 27, 0.5),
    (37, 19, 0.5),
    (37.5, 23, 0.5),
    (38.5, 19, 0.5),
    (39, 26, 0.5),
    (39.5, 24, 0.5),
    (40, 21, 0.5),
    (40.5, 19, 0.5),
    (41, 17, 0.5),
    (41.5, 19, 0.5),
    (42, 21, 0.5),
    (42.5, 24, 0.5),
    (43, 22, 0.5),
    (43.5, 17, 0.5),
    (44, 14, 0.5),
]
ListG12 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (13, 30, 1),
    (15, 29, 1.5),
    (16.5, 28, 0.25),
    (16.75, 27, 0.25),
    (17, 25, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 25, 0.5),
    (37, 26, 0.5),
    (37.5, 24, 0.5),
    (38, 22, 0.5),
    (38.5, 21, 1),
    (39.5, 19, 0.5),
    (40, 17, 0.5),
    (40.5, 15, 0.5),
    (41, 14, 0.5),
    (41.5, 17, 0.5),
    (42, 22, 0.5),
    (42.5, 24, 0.5),
    (43, 26, 0.5),
    (43.5, 17, 0.5),
    (44, 22, 0.5),
    (44.5, 26, 0.5),
]
ListG13 = [
    (3, 29, 1.5),
    (4.5, 26, 1),
    (5.5, 30, 0.5),
    (6, 26, 0.5),
    (6.5, 22, 0.5),
    (13, 25, 0.5),
    (13.5, 22, 0.5),
    (14, 18, 1),
    (15, 29, 2),
    (17, 26, 0.5),
    (17.5, 17, 0.5),
    (18, 22, 0.5),
    (18.5, 25, 0.5),
    (37, 19, 0.5),
    (37.5, 22, 0.5),
    (38, 22, 0.5),
    (38.5, 19, 0.5),
    (39, 29, 1.5),
    (40.5, 28, 0.5),
    (41, 26, 1),
    (42, 21, 0.5),
    (42.5, 24, 1),
    (43.5, 26, 0.5),
    (44, 22, 1),
]
ListG14 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 19, 0.5),
    (13.5, 15, 0.5),
    (14, 19, 0.5),
    (14.5, 22, 0.5),
    (15, 26, 0.5),
    (15.5, 24, 0.5),
    (16, 21, 0.5),
    (16.5, 18, 0.5),
    (17, 17, 0.5),
    (17.5, 19, 0.5),
    (18, 22, 0.5),
    (18.5, 27, 0.5),
    (38.5, 29, 3.5),
    (42, 26, 0.5),
    (42.5, 21, 1),
    (43.5, 21, 0.5),
    (44, 19, 1),
]
ListG15 = [
    (3, 17, 0.5),
    (3.5, 19, 0.5),
    (4, 21, 0.5),
    (4.5, 24, 0.5),
    (5, 22, 0.5),
    (5.5, 17, 0.5),
    (6, 14, 0.5),
    (6.5, 10, 0.5),
    (13, 19, 0.5),
    (13.5, 22, 0.5),
    (14, 22, 0.5),
    (14.5, 19, 0.5),
    (15, 26, 0.5),
    (15.5, 17, 0.5),
    (16, 22, 0.5),
    (16.5, 26, 0.5),
    (17, 22, 0.5),
    (17.5, 24, 0.5),
    (18, 26, 0.5),
    (18.5, 29, 0.5),
    (37, 19, 0.5),
    (37.5, 15, 0.5),
    (38, 19, 0.33),
    (38.33, 21, 0.33),
    (38.66, 24, 0.33),
    (39, 26, 1),
    (40, 24, 1),
    (41, 24, 1.5),
    (42.5, 21, 0.5),
    (43, 17, 0.5),
    (43.5, 14, 0.5),
]
ListG16 = [
    (3, 17, 2),
    (5, 14, 2),
    (13, 14, 1.5),
    (14.5, 12, 2.5),
    (17, 17, 2),
    (37, 14, 2),
    (39, 12, 1.5),
    (40.5, 17, 2.5),
]
ListG17 = [
    (3, 17, 2),
    (5, 14, 2),
    (13, 14, 1.5),
    (14.5, 12, 2.5),
    (17, 17, 2),
    (37, 14, 2),
    (39, 12, 1.5),
    (40.5, 17, 2.5),
]
#

fomer experiment

ListCodeB = [ListB1,ListB2,ListB3,ListB4,ListB5,ListB6,ListB7,ListB8,ListB9,ListB10,ListB11,ListB12,ListB13,ListB14,ListB15,ListB16,ListB17] ListCodeE = [ListE1,ListE2,ListE3,ListE4,ListE5,ListE6,ListE7,ListE8,ListE9,ListE10,ListE11,ListE12,ListE13,ListE14,ListE15,ListE16,ListE17] ListCodeG = [ListG1,ListG2,ListG3,ListG4,ListG5,ListG6,ListG7,ListG8,ListG9,ListG10,ListG11,ListG12,ListG13,ListG14,ListG15,ListG16,ListG17]

#

angle1=23.14 angle2=23.14/17 angle3=23.14/172 angle4=23.14/173 angle5=23.14/174 angle6=23.14/175 angle7=23.14/176 angle8=23.14/177 angle9=23.14/178 angle10=23.14/179 angle11=23.14/1710 angle12=23.14/1711 angle13=23.14/1712 angle14=23.14/1713 angle15=23.14/1714 angle16=23.14/1715 angle17=23.14/1716

#

2

for note in ListB2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle2, orient_axis='Z')

for note in ListE2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle2, orient_axis='Z')

for note in ListG2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle2, orient_axis='Z')

3

for note in ListB3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle3, orient_axis='Z')

for note in ListE3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle3, orient_axis='Z')

for note in ListG3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle3, orient_axis='Z')

4

for note in ListB4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle4, orient_axis='Z')

for note in ListE4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle4, orient_axis='Z')

for note in ListG4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle4, orient_axis='Z')

5

for note in ListB5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle5, orient_axis='Z')

for note in ListE5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle5, orient_axis='Z')

for note in ListG5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle5, orient_axis='Z')

6

for note in ListB6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle6, orient_axis='Z')

for note in ListE6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle6, orient_axis='Z')

for note in ListG6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle6, orient_axis='Z')

7

for note in ListB7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle7, orient_axis='Z')

for note in ListE7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle1, orient_axis='Z')

for note in ListG7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle7, orient_axis='Z')

8

for note in ListB8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle8, orient_axis='Z')

for note in ListE8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle8, orient_axis='Z')

for note in ListG8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle8, orient_axis='Z')

9

for note in ListB9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle9, orient_axis='Z')

for note in ListE9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle9, orient_axis='Z')

for note in ListG9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle9, orient_axis='Z')

10

for note in ListB10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle10, orient_axis='Z')

for note in ListE10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle10, orient_axis='Z')

for note in ListG10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle10, orient_axis='Z')

11

for note in ListB11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle11, orient_axis='Z')

for note in ListE11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle11, orient_axis='Z')

for note in ListG11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle11, orient_axis='Z')

12

for note in ListB12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle12, orient_axis='Z')

for note in ListE12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle12, orient_axis='Z')

for note in ListG12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle12, orient_axis='Z')

13

for note in ListB13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle13, orient_axis='Z')

for note in ListE13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle13, orient_axis='Z')

for note in ListG13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle13, orient_axis='Z')

14

for note in ListB14: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle14, orient_axis='Z')

for note in ListE14: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle14, orient_axis='Z')

for note in ListG14: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle14, orient_axis='Z')

15

for note in ListB15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle15, orient_axis='Z')

for note in ListE15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle15, orient_axis='Z')

for note in ListG15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle15, orient_axis='Z')

16

for note in ListB16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle16, orient_axis='Z')

for note in ListE16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle16, orient_axis='Z')

for note in ListG16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle16, orient_axis='Z')

17

for note in ListB17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle17, orient_axis='Z')

for note in ListE17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,0,0), scale=(z5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle17, orient_axis='Z')

for note in ListG17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2-32)5/32,y/(2t)-5,0), scale=(z*5/32,y/t,l)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

bpy.ops.transform.rotate(value=anglex, orient_axis='X')
bpy.ops.transform.rotate(value=angleA, orient_axis='X')
bpy.ops.transform.rotate(value=angle17, orient_axis='Z')

key in B

ListB1 = [(1,21,2),(23,6,1.5),(24.5,9,2.5),(45,18,2),(47,18,1.5),(48.5,21,4.5),(61,21,1.5),(62.5,21,1)] for note in ListB1: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,1), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB, orient_axis='Z')

ListB2 = [(1,21,2),(23,6,1.5),(24.5,9,2.5),(45,18,2),(47,18,1.5),(48.5,21,4.5),(61,16,0.5),(61.5,19,0.5),(62,23,0.5),(62.5,26,0.5),(63,25,1.5),(64.5,23,0.5)] for note in ListB2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,3), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB3 = [(1,21,0.5),(1.5,18,0.5),(2,14,1),(23,19,0.5),(23.5,23,0.5),(24,25,0.5),(24.5,28,0.5),(25,25,1),(26,23,0.5),(26.5,21,1),(45,18,0.5),(45.5,16,0.5),(46,14,0.5),(46.5,13,1),(47.5,9,0.5),(48,11,0.5),(48.5,13,0.5),(49,14,0.5),(49.5,16,0.5),(50,18,0.5),(50.5,21,0.5),(51,25,0.5),(51.5,24,0.5),(52,23,0.5),(52.5,22,0.5),(62,25,0.5),(62.5,26,0.5),(63,25,1.5),(64.5,21,0.5)] for note in ListB3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,5), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB4 = [(1,29,2),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,21,1.5),(26.5,18,0.5),(27,16,0.5),(27.5,15,0.5),(28,14,0.5),(28.5,10,0.5),(45,25,1),(46,26,3),(49,25,0.5),(49.5,21,0.5),(50,23,0.5),(50.5,25,0.5),(51,22,0.5),(51.5,18,0.5),(52,16,0.5),(52.5,14,0.5),(61.5,16,0.5),(62,19,0.33),(62.33,23,0.33),(62.66,26,0.33),(63,21,0.5),(63.5,23,0.5),(64,25,0.5),(64.5,28,0.5)] for note in ListB4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,7), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB5 = [(1,26,0.5),(1.5,16,0.5),(2,18,0.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,1),(26,25,0.5),(26.5,23,0.5),(27,21,0.5),(27.5,18,0.5),(45,18,0.5),(45.5,14,0.5),(46,13,0.5),(46.5,9,0.5),(47,11,0.5),(47.5,10,0.5),(48,11,0.5),(48.5,13,0.5),(49,14,0.5),(49.5,16,0.5),(50,18,0.5),(50.5,21,0.5),(51,25,0.5),(51.5,21,0.5),(52,18,0.5),(52.5,14,0.5),(61,18,1)] for note in ListB5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,9), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB6 = [(1.5,9,0.5),(2,14,0.5),(2.5,18,0.5),(25,21,1),(26,18,0.5),(26.5,16,0.5),(27,14,0.5),(27.5,16,0.5),(28,18,0.5),(28.5,21,0.5),(45.5,16,0.5),(46,19,0.33),(46.33,23,0.33),(46.66,26,0.33),(47,25,1),(48,28,1),(49,29,1.5),(50.5,25,0.5),(51,21,0.5),(51.5,18,0.5),(61.5,30,0.5),(62,28,0.5),(62.5,26,0.5),(63,25,1.5),(64.5,21,0.5)] for note in ListB6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,11), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB7 = [(1,29,3.5),(23,30,1),(24,28,0.5),(24.5,26,0.5),(25,25,0.5),(25.5,23,0.5),(26,21,0.5),(26.5,19,0.5),(27,18,0.5),(27.5,16,0.5),(28,14,0.5),(28.5,10,0.5),(45.5,16,0.5),(46,19,0.33),(46.33,23,0.33),(46.66,26,0.33),(47,25,0.5),(47.5,28,2.5),(50,25,0.5),(50.5,23,0.5),(51,21,0.5),(51.5,18,0.5),(52,14,1),(62,28,2.5),(64.5,25,0.5)] for note in ListB7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,13), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB8 = [(1,23,0.5),(1.5,21,0.5),(2,18,0.5),(2.5,14,0.5),(23,19,0.5),(23.5,23,0.5),(24,25,0.5),(24.5,28,0.5),(25,25,0.5),(25.5,23,0.5),(26,25,0.5),(26.5,21,0.5),(27,25,0.5),(27.5,24,0.5),(28,23,0.5),(28.5,22,0.5),(45.5,16,0.5),(46,19,0.33),(46.33,23,0.33),(46.66,26,0.33),(47,25,1),(48,30,1),(49,28,1.5),(50.5,25,0.5),(51,21,0.5),(51.5,18,0.5),(61,18,0.5,),(61.5,14,0.5,),(62,11,0.5),(62.5,7,0.5,),(63,13,0.5,),(63.5,9,0.5,),(64,11,0.5),(64.5,13,0.5)] for note in ListB8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,15), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB9 = [(1,14,0.5),(1.5,16,0.5),(2,18,0.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,1),(26,25,0.5),(26.5,23,0.5),(27,21,0.5),(27.5,18,0.5),(28,14,0.5),(28.5,10,0.5),(45.5,16,0.5),(46,19,0.33),(46.33,23,0.33),(46.66,26,0.33),(47,25,1),(48,21,1),(49,21,1.5),(50.5,18,0.5),(51,16,1),(52,14,1),(63.5,25,1.5)] for note in ListB9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,17), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB10 = [(1,25,1.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,29,1),(26,25,0.5),(26.5,23,0.5),(27,21,0.5),(27.5,18,0.5),(28,14,0.5),(28.5,10,0.5),(45,18,1),(46,14,0.5),(46.5,9,0.5),(47,13,1.5),(48.5,9,0.5),(49,14,0.5),(49.5,16,0.5),(50,18,0.5),(50.5,19,0.5),(51,25,0.5),(51.5,24,0.5),(52,23,1),(52.5,22,0.5),(62.5,21,2.5)] for note in ListB10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,19), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB11 = [(1,14,0.5),(1.5,16,0.5),(2,18,0.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,0.5),(25.5,25,0.5),(26,23,0.5),(26.5,21,0.5),(27,18,0.5),(27.5,16,0.5),(28,14,0.5),(28.5,10,0.5),(45,18,0.5),(47,18,1.5),(48.5,13,2),(50.5,9,0.5),(51,14,0.5),(51.5,16,0.5),(52,18,1),(52.5,21,0.5),(61,18,0.5),(61.5,14,0.5),(62,11,0.5),(62.5,7,0.5),(63,13,1.5),(64.5,7,0.5)] for note in ListB11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,21), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB12 = [(1,14,0.5),(1.5,16,0.5),(2,18,0.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,0.5),(25.5,25,0.5),(26,23,0.5),(26.5,21,0.5),(27,18,0.5),(27.5,18,0.5),(28,14,0.5),(28.5,9,0.5),(45,25,1),(47,28,2),(49,25,1.5),(50.5,28,0.5),(51,25,0.5),(51.5,21,0.5),(52,18,1),(52.5,14,0.5),(61,27,0.5),(61.5,25,2.5),(62,11,0.5)] for note in ListB12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,23), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB13 = [(2,28,1),(23,30,3),(26,29,0.5),(26.5,28,0.5),(27,25,0.5),(27.5,21,0.5),(28,18,0.5),(28.5,14,0.5),(46.5,25,2),(48.5,21,0.5),(49,23,0.5),(49.5,25,0.5),(50,21,0.5),(50.5,18,1),(51.5,18,0.5),(52,14,0.5),(52.5,10,0.5),(61,18,0.5),(61.5,14,0.5),(62,11,0.5),(62.5,7,0.5),(63,13,1.5),(64.5,9,0.5)] for note in ListB13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,25), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB14 = [(1,14,0.5),(1.5,16,0.5),(2,18,0.5),(2.5,21,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,1),(26,25,0.5),(26.5,23,0.5),(27,21,0.5),(27.5,18,0.5),(28,14,1),(45,21,1.5),(46.5,19,0.5),(47,22,1),(48,20,0.5),(48.5,19,2),(50.5,21,0.5),(51,28,1),(52,27,0.5),(52.5,26,0.5),(61,26,1)] for note in ListB15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,27), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB15 = [(1.5,18,0.5),(2,21,0.5),(2.5,26,0.5),(23,19,0.5),(23.5,21,0.5),(24,23,0.5),(24.5,25,0.5),(25,28,0.5),(25.5,25,0.5),(26,23,0.5),(26.5,21,0.5),(27,18,0.5),(27.5,16,0.5),(28,14,0.5),(28.5,10,0.5),(46,24,1),(47,23,1),(48,26,1),(49,25,1.5),(50.5,21,0.5),(51,18,1),(52,14,1),(61,18,0.5),(61.5,21,1.5)] for note in ListB16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,29), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB2 = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB2, orient_axis='Z')

ListB16 = [(1,21,2),(23,6,1.5),(24.5,9,2.5),(45,18,2),(47,18,1.5),(48.5,21,4.5),(61,21,1.5),(62.5,21,1)] for note in ListB17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,31), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB, orient_axis='Z')

ListB17 = [(1,21,2),(23,6,1.5),(24.5,9,2.5),(45,18,2),(47,18,1.5),(48.5,21,4.5)] for note in ListB17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,33), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleB = 0.785 #45 deg
bpy.ops.transform.rotate(value=angleB, orient_axis='Z')
#

ListE1 = [(7,10,1),(8.5,13,2.5),(19,13,2),(21,10,2),(29,10,2),(31,8,1.5),(32,13,4.5),(53,22,2),(55,22,1),(56.5,25,4.5)] for note in ListE1: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,1), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE2 = [(7,10,1),(8.5,13,2.5),(19,13,2),(21,10,2),(29,10,2),(31,8,1.5),(32,13,4.5),(53,22,2),(55,22,1),(56.5,25,3.5)] for note in ListE2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,3), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE3 = [(7,15,0.5),(7.5,11,0.5),(8,10,0.5),(8.5,8,0.5),(9,6,0.5),(9.5,8,0.5),(10,10,0.5),(10.5,11,0.5),(11,13,0.5),(11.5,15,0.5),(12,17,0.5),(12.5,20,0.5),(19,17,0.5),(19.5,20,0.5),(20,21,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,25,0.5),(29.5,24,0.5),(30,23,0.5),(30.5,22,0.5),(31,20,0.5),(31.5,18,0.5),(32,17,0.5),(32.5,15,0.5),(33,13,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,20,0.5),(53,20,1),(55,22,0.25),(55.25,23,0.25),(55.5,22,0.5),(56,20,0.5),(56.5,17,0.5),(57,18,0.5),(57.5,20,0.5),(58,22,0.5),(58.5,25,0.5),(59,30,1),(60,25,1)] for note in ListE3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,5), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE4 = [(7,25,0.5),(7.5,24,0.5),(8,23,0.5),(8.5,27,0.5),(9,25,0.5),(9.5,22,0.5),(10,20,0.5),(10.5,18,0.5),(11,22,0.5),(11.5,18,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,15,0.5),(29.5,17,0.5),(30,18,0.5),(30.5,15,0.5),(31,22,0.5),(31.5,20,0.5),(32,17,0.5),(32.5,15,0.5),(33,13,1),(34.5,23,0.5),(35,22,0.5),(35.5,18,0.5),(53,15,0.5),(53.5,17,0.5),(54,18,0.5),(54.5,15,0.5),(55,22,0.5),(55.5,20,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,1.5),(58.5,20,1.5)] for note in ListE4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,7), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE5 = [(7,15,0.5),(7.5,11,0.5),(8,10,0.5),(8.5,8,0.5),(9,6,0.5),(9.5,8,0.5),(10,10,0.5),(10.5,11,0.5),(11,13,0.5),(11.5,15,0.5),(12,17,0.5),(12.5,20,0.5),(19,23,0.5),(19.5,27,0.5),(20,25,0.5),(20.5,23,0.5),(21,22,0.5),(21.5,18,0.5),(22,20,0.5),(22.5,22,0.5),(31,29,1),(32.5,27,0.25),(32.75,26,0.25),(33,24,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,20,0.5),(35,18,0.5),(35.5,20,0.5),(36,22,0.5),(36.5,25,0.5),(53,23,1.5),(54.5,22,0.5),(55,22,0.5),(55.5,20,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,0.5),(57.5,11,0.5),(58,10,0.5),(58.5,8,0.5),(59,6,0.5),(59.5,8,0.5),(60,9,0.5),(60.5,13,0.5)] for note in ListE5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,9), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE6 = [(7,15,0.5),(7.5,11,0.5),(8,10,0.5),(8.5,8,0.5),(9,6,0.5),(9.5,8,0.5),(10,10,0.5),(10.5,11,0.5),(11,13,0.5),(11.5,15,0.5),(12,17,0.5),(12.5,20,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,22,0.5),(29,25,0.5),(29.5,24,0.5),(30,23,0.5),(30.5,22,0.5),(31,20,1),(31.5,18,0.5),(32,17,0.5),(32.5,15,0.25),(33,13,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,20,0.5),(53,29,2),(55,25,0.5),(55.5,23,0.5),(56,22,0.5),(56.5,20,0.5),(57,18,0.5),(57.5,20,0.5),(58,22,0.5),(58.5,25,0.5),(59,6,0.5),(60,30,1)] for note in ListE6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,11), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE7 = [(7,25,0.5),(7.5,24,0.5),(8,23,0.5),(8.5,27,0.5),(9,25,0.5),(9.5,22,0.5),(10,20,0.5),(10.5,18,0.5),(11,22,0.5),(11.5,25,1),(12.5,30,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,15,0.5),(29.5,17,0.5),(30,18,0.5),(30.5,20,0.5),(31,22,1),(31.5,20,0.5),(32,17,0.5),(32.5,15,0.25),(33,13,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,15,0.5),(53,29,1.5),(54.5,27,0.25),(54.75,26,0.25),(55,25,0.5),(55.5,23,0.5),(56,22,0.5),(56.5,20,0.5),(57,18,0.5),(57.5,20,0.5),(58,22,0.5),(58.5,25,0.5),(59,30,0.5)] for note in ListE7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,13), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE8 = [(7,15,0.5),(7.5,18,0.5),(8,17,0.5),(8.5,15,0.5),(9,13,0.5),(9.5,15,0.5),(10,17,0.5),(10.5,20,0.5),(11,18,0.5),(11.5,20,0.5),(12,22,0.5),(12.5,25,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,20,0.5),(29.5,18,0.5),(30,17,0.5),(30.5,15,0.5),(31,13,0.5),(31.5,11,0.5),(32,10,0.5),(32.5,8,0.25),(33,6,0.25),(33.25,8,0.25),(33.5,10,0.25),(33.75,11,0.25),(34,13,0.25),(34.25,15,0.25),(34.5,17,0.25),(34.75,18,0.25),(35,20,0.25),(35.25,22,0.25),(35.5,23,0.25),(35.75,25,0.75),(54,29,1),(55,25,0.5),(55.5,23,0.5),(56,22,0.5),(56.5,20,0.5),(57,18,0.5),(57.5,17,0.5),(58,20,0.5),(58.5,17,0.5),(59,19,0.5),(59.5,20,0.5),(60,22,0.5),(60.5,25,0.5)] for note in ListE8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,15), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE9 = [(7,15,0.5),(7.5,18,0.5),(8,17,0.5),(8.5,15,0.5),(9,13,0.5),(9.5,22,0.5),(12.5,22,0.5),(19,23,0.5),(19.5,27,0.5),(20,25,0.5),(20.5,23,0.5),(21,22,0.5),(21.5,18,0.5),(22,20,0.5),(22.5,22,0.5),(29,15,0.5),(29.5,17,0.5),(30,18,0.5),(30.5,20,0.5),(31,22,0.5),(31.5,20,0.5),(32,17,0.5),(32.5,15,0.5),(33,13,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,20,0.5),(53,15,0.5),(53.5,17,0.5),(54,18,0.5),(54.5,15,0.5),(55,22,0.5),(55.5,20,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,0.5),(57.5,18,0.5),(58,20,0.5),(58.5,22,1),(59.5,22,0.5),(60,25,1)] for note in ListE9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,17), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE10 = [(7,22,0.5),(7.5,26,0.5),(8,25,0.5),(8.5,24,0.5),(9,23,0.5),(9.5,27,0.5),(10,25,0.5),(10.5,22,0.5),(11,20,0.5),(11.5,18,0.5),(12,22,0.5),(12.5,25,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,22,0.5),(29.5,23,0.5),(30,22,0.5),(30.5,20,0.25),(30.75,18,0.25),(31,17,0.5),(31.5,15,0.5),(32,13,0.5),(32.5,11,0.5),(33,10,0.5),(33.5,13,0.5),(34,15,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,22,0.5),(36.5,22,0.5),(53,20,0.5),(53.5,22,0.5),(54,23,0.5),(54.5,20,0.5),(55,25,0.5),(55.5,21,0.5),(56,17,0.5),(56.5,13,0.5),(57,22,0.5),(57.5,18,0.5),(58,17,0.5),(58.5,20,0.5),(59,18,1)] for note in ListE10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,19), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE11 = [(7,23,1),(8,27,0.5),(8.5,25,2),(10.5,22,0.5),(11,20,0.5),(11.5,18,0.5),(19,25,0.5),(19.5,24,0.5),(20,23,0.5),(20.5,27,0.5),(21,25,0.5),(21.5,22,0.5),(22,20,0.5),(22.5,18,0.5),(29,15,0.5),(29.5,17,0.5),(30,18,0.5),(30.5,22,0.5),(31,20,1),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,15,0.5),(53,25,0.5),(53.5,24,0.5),(54,23,0.5),(54.5,22,0.5),(55,20,0.5),(55.5,18,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,0.5),(57.5,23,0.5),(58,22,0.5),(58.5,18,0.5),(59,20,0.5),(59.5,18,0.5),(60,17,0.5),(60.5,15,0.5)] for note in ListE11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,21), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE12 = [(7,29,2),(9,25,0.5),(9.5,23,0.5),(10,22,0.5),(10.5,20,0.5),(11,18,0.5),(11.5,20,0.5),(12,22,0.5),(12.5,25,0.5),(19,23,0.5),(19.5,27,0.5),(20,25,0.5),(20.5,23,0.5),(21,22,1),(29,18,0.5),(29.5,20,0.5),(30,22,0.5),(30.5,18,0.5),(31,25,0.5),(31.5,22,0.5),(32,17,0.5),(32.5,15,0.5),(33,13,0.5),(33.5,22,0.5),(34,23,0.5),(34.5,20,0.5),(35,18,0.5),(35.5,20,0.5),(36,22,0.5),(36.5,25,0.5),(53,15,0.5),(53.5,17,0.5),(54,18,0.5),(54.5,20,0.5),(55,22,0.5),(55.5,20,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,0.5),(57.5,18,0.5),(58,22,0.5),(58.5,25,0.5),(59,30,1),(60,25,0.5),(60.5,27,0.5)] for note in ListE12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,23), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE13 = [(7,24,0.5),(7.5,27,0.5),(8,25,1),(11,29,2),(19,18,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,29,1.33),(30.33,27,0.33),(30.66,26,0.33),(31,25,0.5),(31.5,24,0.5),(32,23,0.5),(32.5,22,0.5),(33,20,0.5),(33.5,18,0.5),(34,17,0.5),(34.5,15,0.5),(35,13,0.5),(35.5,15,0.5),(36,17,0.5),(36.5,20,0.5),(53,15,0.5),(53.5,17,0.5),(54,18,0.5),(54.5,15,0.5),(55,22,0.5),(55.5,20,0.5),(56,17,0.5),(56.5,15,0.5),(57,13,0.5),(57.5,15,0.5),(58,17,0.5),(58.5,20,0.5),(59,18,0.5),(59.5,20,0.5),(60,22,0.5),(60.5,25,0.5)] for note in ListE13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,25), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE14 = [(7,15,0.5),(7.5,11,0.5),(8,10,0.5),(8.5,8,0.5),(9,6,0.5),(9.5,8,0.5),(10,10,0.5),(10.5,11,0.5),(11,13,0.5),(11.5,15,0.5),(12,17,0.5),(12.5,20,0.5),(19,17,0.5),(19.5,20,0.5),(20,23,0.5),(20.5,27,0.5),(21,18,0.5),(21.5,20,0.5),(22,22,0.5),(22.5,25,0.5),(29,29,1.5),(30.5,27,0.25),(30.75,26,0.25),(31,25,0.5),(31.5,23,0.5),(32,22,0.5),(32.5,20,0.5),(33,18,0.5),(33.5,20,0.5),(34,22,0.5),(34.5,25,0.5),(35,30,1),(53,25,3.5),(56.5,23,0.5),(57,22,0.5),(57.5,18,0.5),(58,17,0.5),(58.5,20,0.5),(59,18,0.5),(59.5,20,0.5),(60,22,0.5),(60.5,26,0.5)] for note in ListE15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,27), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE15 = [(7,15,0.5),(7.5,11,0.5),(8,10,0.5),(8.5,8,0.5),(9,6,0.5),(9.5,8,0.5),(10,10,0.5),(10.5,11,0.5),(11,13,0.5),(11.5,15,0.5),(12,17,0.5),(12.5,20,0.5),(19,23,0.5),(19.5,27,0.5),(20,25,0.5),(20.5,23,0.5),(21,22,0.5),(21.5,18,0.5),(22,20,0.5),(22.5,22,0.5),(29,15,0.5),(29.5,17,0.5),(30,18,0.5),(30.5,20,0.5),(31,22,0.5),(31.5,20,0.5),(32,17,0.5),(32.5,15,0.5),(33,13,0.5),(33.5,23,0.5),(34,22,0.5),(34.5,17,0.5),(35,20,0.5),(35.5,18,0.5),(36,17,0.5),(36.5,15,0.5),(53,29,2),(55,25,1.5),(56.5,23,0.5),(57,22,0.5),(57.5,20,1),(58.5,18,2),(60.5,16,0.5)] for note in ListE16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,29), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE16 = [(7,10,1),(8.5,13,2.5),(19,13,2),(21,10,2),(29,10,2),(31,8,1.5),(32,13,4.5),(53,22,2),(55,22,1),(56.5,25,4.5)] for note in ListE17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,31), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListE17 = [(7,10,1),(8.5,13,2.5),(19,13,2),(21,10,2),(29,10,2),(31,8,1.5),(32,13,4.5),(53,22,2),(55,22,1),(56.5,25,4.5)] for note in ListE1: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,33), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleE = 2.878 #165 deg
bpy.ops.transform.rotate(value=angleE, orient_axis='Z')

ListG1 = [(3,17,2),(5,14,2),(13,14,1.5),(14.5,12,2.5),(17,17,2),(37,14,2),(39,12,1.5),(40.5,17,2.5)] for note in ListG1: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,1), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG2 = [(3,17,2),(5,14,2),(13,14,1.5),(14.5,12,2.5),(17,17,2),(37,14,2),(39,12,1.5),(40.5,17,2.5)] for note in ListG2: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,3), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG3 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,9,0.5),(13,19,0.5),(13.5,15,0.5),(14,12,0.5),(14.5,10,0.5),(15,9,0.5),(15.5,18,0.5),(16,17,0.5),(16.5,15,0.5),(17,14,0.5),(17.5,17,0.5),(18,22,0.5),(18.5,26,0.5),(37,19,0.5),(37.5,15,0.5),(38,12,0.5),(38.5,7,0.5),(39,10,0.5),(39.5,7,0.5),(40,9,0.5),(40.5,18,0.5),(41,17,0.5),(41.5,15,0.5),(42,14,0.5),(42.5,12,0.5),(43,10,0.5),(43.5,12,0.5),(44,13,0.5),(44.5,17,0.5)] for note in ListG3: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,5), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG4 = [(4,28,0.5),(4.5,27,0.5),(5,26,0.5),(5.5,17,0.5),(6,20,0.5),(6.5,23,0.5),(13,29,1.5),(14.5,25,1),(15.5,21,0.5),(16,17,1),(17.5,17,0.5),(18,22,0.5),(18.5,26,0.5),(37.5,12,0.5),(38,15,0.33),(38.33,19,0.33),(38.66,22,0.33),(39,26,0.5),(39.5,24,0.5),(40,21,0.5),(40.5,19,0.5),(41,17,0.5),(41.5,19,0.5),(42,21,0.5),(42.5,24,0.5),(43,21,0.5),(43.5,23,0.5),(44,26,0.5),(44.5,25,0.5)] for note in ListG4: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,7), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG5 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,19,0.5),(13.5,15,0.5),(14,22,0.5),(14.5,18,0.5),(15,26,0.5),(15.5,17,0.5),(16,19,0.5),(16.5,21,0.5),(17,22,0.5),(17.5,24,0.5),(18,26,0.5),(18.5,29,0.5),(37,29,3.5),(40.5,28,0.25),(40.75,27,0.25),(41,26,0.5),(41.5,21,0.5),(42,23,0.5),(42.5,21,0.5),(43,22,0.5),(43.5,17,0.5),(44,14,0.5),(44.5,10,0.5)] for note in ListG5: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,9), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG6 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,19,0.5),(13.5,23,0.5),(14,22,0.5),(14.5,19,0.5),(15,26,0.5),(15.5,17,0.5),(16,19,0.5),(16.5,23,0.5),(17,22,0.5),(17.5,24,0.5),(18,26,0.5),(18.5,29,0.5),(37,19,0.5),(37.5,15,0.5),(38,12,0.5),(38.5,7,0.5),(39,10,1.5),(40.5,9,0.5),(41,17,1),(43,26,1)] for note in ListG6: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,11), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG7 = [(4.5,28,0.25),(4.75,27,0.25),(5,26,0.5),(5.5,17,0.5),(6,22,0.5),(6.5,26,0.5),(13,30,0.5),(13.5,17,1),(14.5,26,0.5),(15,24,1),(17.5,17,0.5),(18,22,0.5),(18.5,26,0.5),(37,24,0.5),(37.5,22,1),(38.5,17,0.25),(38.75,22,0.25),(39,26,1),(40,22,0.5),(40.5,25,2),(42.5,22,0.5),(43,26,0.5),(43.5,29,0.5)] for note in ListG7: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,13), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG8 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,26,0.5),(13.5,24,0.5),(14,22,0.5),(14.5,21,1.5),(17.5,17,0.5),(18,22,0.5),(18.5,26,0.5),(38,12,0.25),(38.25,14,0.25),(38.5,15,0.25),(38.75,17,0.25),(39,19,0.25),(39.25,21,0.25),(39.5,22,0.25),(39.75,24,0.25),(40,26,2.5),(42.5,21,0.5),(43,24,0.5),(43.5,22,0.5)] for note in ListG8: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,15), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG9 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,22,1.5),(14.5,19,0.5),(15,21,0.5),(15.5,22,0.5),(16,24,0.5),(16.5,26,0.5),(17,22,0.5),(17.5,22,0.5),(18.5,26,0.25),(18.75,29,0.25),(37,19,0.5),(37.5,15,0.5),(38,12,0.5),(38.5,10,0.5),(39,17,1.5),(40.5,15,0.5),(41,14,0.5),(41.5,17,0.5),(42,19,0.5),(42.5,21,1.5)] for note in ListG9: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,17), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG10 = [(3,29,0.5),(3.5,27,1),(4.5,24,1),(5.5,27,0.5),(6,26,0.5),(6.5,17,0.5),(13,19,1),(15,26,0.5),(15.5,24,0.5),(16,21,0.5),(16.5,18,0.5),(17,17,0.5),(17.5,19,0.5),(18,21,0.5),(18.5,24,0.5),(39,22,0.5),(39.5,19,0.5),(40,21,0.5),(40.5,24,0.5),(41,22,0.5),(41.5,17,0.5),(42,14,0.5),(42.5,10,0.5),(43,17,1)] for note in ListG10: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,19), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG11 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,17,1.5),(6.5,22,0.25),(6.75,26,0.25),(14,11,0.5),(14.5,19,0.25),(14.75,22,0.25),(15,26,1),(16,17,1),(17,22,0.5),(17.5,24,0.5),(18,26,0.5),(18.5,27,0.5),(37,19,0.5),(37.5,23,0.5),(38.5,19,0.5),(39,26,0.5),(39.5,24,0.5),(40,21,0.5),(40.5,19,0.5),(41,17,0.5),(41.5,19,0.5),(42,21,0.5),(42.5,24,0.5),(43,22,0.5),(43.5,17,0.5),(44,14,0.5)] for note in ListG11: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,21), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG12 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(13,30,1),(15,29,1.5),(16.5,28,0.25),(16.75,27,0.25),(17,26,0.5),(17.5,17,0.5),(18,22,0.5),(18.5,25,0.5),(37,26,0.5),(37.5,24,0.5),(38,22,0.5),(38.5,21,1),(39.5,19,0.5),(40,17,0.5),(40.5,15,0.5),(41,14,0.5),(41.5,17,0.5),(42,22,0.5),(42.5,24,0.5),(43,26,0.5),(43.5,17,0.5),(44,22,0.5),(44.5,26,0.5)] for note in ListG12: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,23), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG13 = [(3,29,1.5),(4.5,26,1),(5.5,30,0.5),(6,26,0.5),(6.5,22,0.5),(13,25,0.5),(13.5,22,0.5),(14,18,1),(15,29,2),(17,26,0.5),(17.5,17,0.5),(18,22,0.5),(18.5,25,0.5),(37,19,0.5),(37.5,22,0.5),(38,22,0.5),(38.5,19,0.5),(39,29,1.5),(40.5,28,0.5),(41,26,1),(42,21,0.5),(42.5,24,1),(43.5,26,0.5),(44,22,1)] for note in ListG13: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,25), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG14 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,19,0.5),(13.5,15,0.5),(14,19,0.5),(14.5,22,0.5),(15,26,0.5),(15.5,24,0.5),(16,21,0.5),(16.5,18,0.5),(17,17,0.5),(17.5,19,0.5),(18,22,0.5),(18.5,27,0.5),(38.5,29,3.5),(42,26,0.5),(42.5,21,1),(43.5,21,0.5),(44,19,1)] for note in ListG15: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,27), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG15 = [(3,17,0.5),(3.5,19,0.5),(4,21,0.5),(4.5,24,0.5),(5,22,0.5),(5.5,17,0.5),(6,14,0.5),(6.5,10,0.5),(13,19,0.5),(13.5,22,0.5),(14,22,0.5),(14.5,19,0.5),(15,26,0.5),(15.5,17,0.5),(16,22,0.5),(16.5,26,0.5),(17,22,0.5),(17.5,24,0.5),(18,26,0.5),(18.5,29,0.5),(37,19,0.5),(37.5,15,0.5),(38,19,0.33),(38.33,21,0.33),(38.66,24,0.33),(39,26,1),(40,24,1),(41,24,1.5),(42.5,21,0.5),(43,17,0.5),(43.5,14,0.5)] for note in ListG16: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,29), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG16 = [(3,17,2),(5,14,2),(13,14,1.5),(14.5,12,2.5),(17,17,2),(37,14,2),(39,12,1.5),(40.5,17,2.5)] for note in ListG17: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,31), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

ListG17 = [(3,17,2),(5,14,2),(13,14,1.5),(14.5,12,2.5),(17,17,2),(37,14,2),(39,12,1.5),(40.5,17,2.5)] for note in ListG18: x,y,z = note bpy.ops.mesh.primitive_cube_add(size=1, location=((x+z/2)/2,0,33), scale=(z/2,2*y,2)) bpy.ops.object.origin_set(type=’ORIGIN_CURSOR’, center=’MEDIAN’)

angleG = 4.972 #285 deg
bpy.ops.transform.rotate(value=angleG, orient_axis='Z')

key in B

ListB = [(1,2,21,2),(23,2,6,1.5),(24.5,3,9,2.5),(49,1,18,2),(51,2,18,1),(52,3,21,4.5),(65,1,23,1.5),(66.5,3,23,1)] angle=0

for note in ListB: X,Y,Z,L = note x,y,z,l = X-Y/2,Y3*(1/2)/2,Z,L bpy.ops.mesh.primitive_cube_add(size=1, location=(x,0,0), scale=(l,y,z))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')

key in E

ListE = [(7,2,10,1),(8.5,3,13,2.5),(19,2,13,2),(21,3,10,2),(29,1,10,2),(31,2,8,1.5),(32,3,13,4.5),(53,1,22,2),(55,2,22,1),(56,3,25,4.5)] anglee=0

for note in ListE: Xe,Ye,Ze,Le = note xe,ye,ze,le = Xe-Ye/2,Ye3*(1/2)/2,Ze,Le bpy.ops.mesh.primitive_cube_add(size=1, location=(xe,0,0), scale=(le,ye,ze))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')

anglee = anglee+2.0944 #120 deg
bpy.ops.transform.rotate(value=anglee, orient_axis='Z')

key in G

ListG = [(3,2,17,2),(5,3,14,2),(13,1,14,1.5),(14.5,2,12,2.5),(17,3,17,2),(37,1,14,2),(39,2,12,1.5),(40.5,3,17,2.5)] angleg=0

for note in ListG: Xg,Yg,Zg,Lg = note xg,yg,zg,lg = Xg-Yg/2,Yg3*(1/2)/2,Zg,Lg bpy.ops.mesh.primitive_cube_add(size=1, location=(xg,0,0), scale=(lg,yg,zg))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')

angleg = angleg+2.0944*2 #120 deg
bpy.ops.transform.rotate(value=angleg, orient_axis='Z')
#

angle = angle+2.0944 #120 deg bpy.ops.transform.rotate(value=angle, orient_axis=’Z’)

#

simple B version

for note in ListB: x,y,z,l = note bpy.ops.mesh.primitive_cube_add(size=1, location=(l,0,0), scale=(x,y,z))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')

simpleB

(x,y,z,l)=(X-Y/2,Y,Z,L) myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

#

angle=0 for note in ListB: x,y,z,l = note bpy.ops.mesh.primitive_cube_add(size=1, location=(l,0,0), scale=(x,y,z))

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')

angle = angle+2.0944 #120 deg
bpy.ops.transform.rotate(value=angle, orient_axis='Z')
#

“key in E” for i in range(0,200): (X1,Y1,Z1,L1)=(56,3,25,4.5) (x1,y1,z1,l1)=(((-1)(X1+Y1(3(1/2)))/2,((3(1/2))*X1-Y1)/2,Z1,L1)) myVerticles1 = [(x1,y1,z1),(x1+l1,y1,z1),(x1+l1,0,z1),(x1,0,z1),(x1,y1,0),(x1+l1,y1,0),(x1+l1,0,0),(x1,0,0)] myFaces1 = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)

“key in G” (X2,Y2,Z2,L2)=(233,2,17,2) (x2,y2,z2,l2)=((X2-Y2(3(1/2))(-1)0.5,((3(1/2))X2+Y2)(-1)0.5,Z2,L2)) myVerticles2 = [(x2,y2,z2),(x2+l2,y2,z2),(x2+l2,0,z),(x2,0,z2),(x2,y2,0),(x2+l2,y2,0),(x2+l2,0,0),(x2,0,0)] myFaces2 = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

creation of the mesh and the object

myMesh = bpy.data.meshes.new(‘trihedronMesh’) myObject = bpy.data.objects.new(‘trihedron’, myMesh)

myMesh1 = bpy.data.meshes.new(‘trihedronMesh’) myObject1 = bpy.data.objects.new(‘trihedron’, myMesh1)

myMesh2 = bpy.data.meshes.new(‘trihedronMesh’) myObject2 = bpy.data.objects.new(‘trihedron’, myMesh2)

link object to collection

myCollection = bpy.context.collection myCollection.objects.link(myObject) myCollection.objects.link(myObject1) myCollection.objects.link(myObject2)

fill the mesh with the verticles information (position of verticles & connection to make face)

myMesh.from_pydata (myVerticles, [] , myFaces) myMesh1.from_pydata (myVerticles1, [] , myFaces1) myMesh2.from_pydata (myVerticles2, [] , myFaces2)

#

myVerticles = [(0,0,0)] myEdges = []

for i in range (0,25): randPosX, randPosY, randPosZ = random.uniform(-50,50),random.uniform(-50,50),random.uniform(-50,50) c myEdges.append((i,i+1))

creation of the mesh and the object

myMesh = bpy.data.meshes.new(‘mikadoMesh’) myObject = bpy.data.objects.new(‘mikado’, myMesh)

link object to collection

myCollection = bpy.context.collection myCollection.objects.link(myObject)

fill the mesh with the verticles information (position of verticles & connection to make edges)

myMesh.from_pydata (myVerticles, myEdges , [])

l:length of note myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

(x,y,z,l)=(23,2,6,1.5) myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

key in B (X,Y,Z,L)=(1,3,21,2) (x,y,z,l)=(X-Y/2,Y,Z,L) myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

List(theme) (1,3,21,2),(23,2,6,1.5),(24.5,3,9,2.5),(49,1,18,2),(51,2,18,1),(52,3,21,4.5),(65,1,23,1.5),(66.5,3,23,1)

key in E (X,Y,Z,L)=(200,2,10,3/2) (x,y,z,l)=(((-1)(X+Y(3(1/2)))/2,((3(1/2))*X-Y)/2,Z,L)) myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

List(theme) (7,2,10,1),(8.5,3,13,2.5),(19,2,13,2),(21,3,10,2),(29,1,10,2),(31,2,8,1.5),(32,3,13,4.5),(53,1,22,2),(55,2,22,1),(56,3,25,4.5)

key in G (X,Y,Z,L)=(3,2,17,2) (x,y,z,l)=((X-Y(3(1/2))(-1)0.5,((3(1/2))X-+Y)(-1)0.5,Z,L)) myVerticles = [(x,y,z),(x+l,y,z),(x+l,0,z),(x,0,z),(x,y,0),(x+l,y,0),(x+l,0,0),(x,0,0)] myFaces = [(0,1,2,3),(0,1,5,4),(1,2,6,5),(2,3,7,6),(3,0,4,7),(4,5,6,7)]

bpy.ops.transform.rotate(value=math.pii120/360,orient_axis=’Z’)